Kot*_*lar 3 standards haskell program-entry-point language-lawyer
在 Haskell 中,编译程序的执行从main
module 中的执行开始Main
。该函数的类型必须是IO ()
。
哪个标准或参考文献定义了上述内容?
Haskell 2010和Haskell 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 程序执行的开始?
\n\nHaskell程序是模块的集合,按照惯例,必须调用其中一个模块
\nMain
并且必须导出值main
。程序的值是module 中标识符的值,它必须是某种类型的类型计算(参见第7章)。当程序执行时,将执行计算,其结果(类型为main
Main
IO \xcf\x84
\xcf\x84
main
\xcf\x84
,并丢弃
https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#dx11-98001
\n 归档时间: |
|
查看次数: |
186 次 |
最近记录: |