web-dev-qa-db-ja.com

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

どうしたの?

32
tekknolagi

トップレベルに式を置くことはできません。 Haskellプログラムのエントリポイントは、mainモジュールのMain関数です。またprint fib 5は2つの引数を使用してprintを呼び出します。実行する必要があります。

main = print $ fib 5

または

main = print (fib 5)
49
Cat Plus Plus