Haskell 98 仕様では、慣例により、プログラムのエントリ ポイント、つまり functionmain
は Main と呼ばれるモジュールに存在する必要があると規定されています。module Main where
ただし、書き込むファイルの先頭に書かなくてもmain
、ソースコードはコンパイルされ、GHC を使用している場合は正しく動作しているように見えます。
質問は:
- 書くことと書かないことの違いは何
module Main where
ですか? - どちらが好ましいですか?
Haskell 98 仕様では、慣例により、プログラムのエントリ ポイント、つまり functionmain
は Main と呼ばれるモジュールに存在する必要があると規定されています。module Main where
ただし、書き込むファイルの先頭に書かなくてもmain
、ソースコードはコンパイルされ、GHC を使用している場合は正しく動作しているように見えます。
質問は:
module Main where
ですか?実際には違いはありませんmodule Main (main) where
。ヘッダーを自分で指定しない場合の暗黙の定義になります。Haskell 98レポートから:
モジュール本体のみで構成される省略形のモジュールが許可されます。これを使用すると、ヘッダーは と見なされます
module Main(main) where
。
私は暗黙の定義よりも明示的な定義を好みますが、Main.hs
それはマイナーな好みです。