これまでの数日間、Haskellと遊んでいたので、フィボナッチシーケンスの基本的な定義をすることにしました。だから私はこのコードを書いた:HaskellはMy Guardに解析エラーがあると言います
main = do
fib :: (Integral a) => Int -> Int
fib x
| x == 0 = 0
| x == 1 = 1
| x >= 2 = fib (x - 2) + fib (x - 1)
do { print (fib 5) }
をそして私はというエラーメッセージが表示されます:私はタブのエラーが疑わ
4:17: parse error on input `|'
ので、私は、私は見つけることができるすべての空白文字の修正を試みたが、私は見つけることができませんどうしましたか!
編集:だから私は人々が提案し何をした、と私は今、このコードを持っている:
fib :: (Integral a) => Int -> Int
main = do
fib x
| x == 0 = 0
| x == 1 = 1
| x >= 2 = fib (x - 2) + fib (x - 1)
print (fib 5)
と私は同じエラーを取得しています。
どれを型署名と関数定義をdoブロックに入れる理由は何ですか? – jakubdaniel
私は何をしているのか分かりませんでした。 – ThePhillipParadox