2011-07-30 8 views
25

私は次のコードを持っている:Haskellのエラー - トップレベルで裸式

fib n 
    | n == 0 = 0 
    | n == 1 = 1 
    | n > 1 = fib (n-1) + fib (n-2) 

print fib 5 

そして、いくつかの理由で、エラーを投げています:

[1 of 1] Compiling Main    (test.hs, test.o) 

test.hs:8:1: Parse error: naked expression at top level 

何が起こっているの?

答えて

44

トップレベルに式を使用することはできません。 Haskellプログラムのエントリーポイントは、モジュールのmain関数です。二つの引数を持つ。またprint fib 5通話print、あなたがする必要があります。

main = print $ fib 5 

または

main = print (fib 5) 
+1

私はGHCがそれをコンパイルし...そして何もしませんtest.hs' '実行します。それを実行するために私は何をしますか? – tekknolagi

+7

@tekk実行可能ファイルを作成する必要があります。デフォルトの名前は何か分かりませんが、 'ls'があなたに伝えます。あるいは 'runhaskell test.hs'を実行するだけで、"ソースから "正しく実行されます。 – MatrixFrog

+1

mainで複数のコマンドを実行する場合はどうすればよいですか? – qed