Haskell 98 规范规定程序的入口点,即函数main
,按照惯例应该驻留在名为 Main 的模块中。然而,即使你没有写module Main where
在你写的文件的顶部,main
当你使用 GHC 时,源代码编译并且看起来工作正常。
问题是:
module Main where
写和不写有什么区别?- 哪个是首选?
Haskell 98 规范规定程序的入口点,即函数main
,按照惯例应该驻留在名为 Main 的模块中。然而,即使你没有写module Main where
在你写的文件的顶部,main
当你使用 GHC 时,源代码编译并且看起来工作正常。
问题是:
module Main where
写和不写有什么区别?没有真正的区别,module Main (main) where
当您自己不指定标头时,将是隐式定义。来自Haskell 98 报告:
允许使用仅由模块主体组成的模块的缩写形式。如果使用它,则假定标题为
module Main(main) where
.
我更喜欢明确的定义而不是隐含的定义,但是,Main.hs
这是一个次要的偏好。