25

Haskell 98 仕様では、慣例により、プログラムのエントリ ポイント、つまり functionmainは Main と呼ばれるモジュールに存在する必要があると規定されています。module Main whereただし、書き込むファイルの先頭に書かなくてもmain、ソースコードはコンパイルされ、GHC を使用している場合は正しく動作しているように見えます。

質問は:

  1. 書くことと書かないことの違いは何module Main whereですか?
  2. どちらが好ましいですか?
4

1 に答える 1

23

実際には違いはありませんmodule Main (main) where。ヘッダーを自分で指定しない場合の暗黙の定義になります。Haskell 98レポートから:

モジュール本体のみで構成される省略形のモジュールが許可されます。これを使用すると、ヘッダーは と見なされますmodule Main(main) where

私は暗黙の定義よりも明示的な定義を好みますが、Main.hsそれはマイナーな好みです。

于 2012-06-20T03:33:31.650 に答える