Haskellの教科書で作業しているときに、一部のコマンドをHaskellスクリプトの.hsファイルに保存しています。ここに小さな例があります。
fst (1,2)
snd (1,2)
これらのコマンドをGHCiのプレリュードから実行すると、正常に動作します。これらの2行で.hsファイルをコンパイルしようとすると、次のようになります。
ch4_test.hs:2:1: error:
Parse error: module header, import declaration
or top-level declaration expected.
|
2 | fst (1,2)
| ^^^^^^^^^
Failed, no modules loaded.
私はこのエラーをグーグルで検索しましたが、何が間違っているのか説明が見つかりません。
Hsファイルに式を入れることはできません。
エラーメッセージが示すように、ここで宣言が必要です。例えば:
main =
print (fst (1,2)) >>
print (snd (1,2))
初心者から将来の初心者へ:インタラクティブな環境ghci
を使用すると、いくつかの式を.hs
ファイルにパンチして、(SwiftおよびRuby)。これはそうではありません。
Haskellにはmain
というエントリーポイントが必要です。引用:
次に、文字を読み取って印刷する簡単なプログラムを示します。
main :: IO () main = do c <- getChar putChar c
Mainという名前の使用は重要です。mainはHaskellプログラムのエントリポイントとして定義され(Cのmain関数と同様)、IOタイプ(通常はIO)を持つ必要があります()