To write or not to write `module Main where` in Haskell

二次信任 提交于 2019-12-03 14:49:07

问题


Haskell 98 specification says that the entry point of a program, namely, function main, should reside in the module called Main, by convention. However, even if you don't write module Main where at the top of the file you write main in, the source code compiles and seems working correct when you're using GHC.

The question is:

  1. What's the difference between writing module Main where and not writing it?
  2. Which one is preferred?

回答1:


There isn't really a difference, module Main (main) where would be the implicit definition when you don't specify a header yourself. From the Haskell 98 Report:

An abbreviated form of module, consisting only of the module body, is permitted. If this is used, the header is assumed to be module Main(main) where.

I would prefer an explicit definition to an implicit one but, for a Main.hs it's a minor preference.



来源:https://stackoverflow.com/questions/11112371/to-write-or-not-to-write-module-main-where-in-haskell

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!