Haskell或GHC的main函数定义在哪里?

3
在Haskell中,编译程序的执行始于在模块Main中执行main函数。此函数必须是类型IO()
上述内容由哪个标准或参考文献定义? Haskell 2010Haskell 98并没有正式定义main(尽管有几个名为main的函数的例子),而是说:
“我们将Haskell程序被操作、解释、编译等方式作为实现相关。” GHC用户指南指导用户创建一个main函数,但从未提到其所需类型或其是程序执行的开始。虽然有关Main模块的引用,但没有关于main函数的引用。
与此对比一下C++(引用C11标准(ISO/IEC 9899:2011)5.1.2.2.1程序启动(p:13)):
“每个C程序[...]包含定义[...]一个名为main的函数,它是指定的程序启动。”
哪个标准或参考文献说main是Haskell程序执行的开始?
1个回答

7
一个Haskell程序是由多个模块组成的,其中一个模块按照惯例必须被命名为Main并且必须导出值main。程序的值是模块Main中标识符main的值,它必须是类型IO τ的计算结果(参见第7章)。当程序执行时,将执行计算main,并且其结果(类型为τ)将被丢弃。

https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#dx11-98001


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接