fib::Int->Int
fib n
n==0 = 1
n>1 = error "Invalid Number"
这个函数给我一个错误
Syntax error in declaration (unexpected symbol "==")
我不确定该功能在与阅读材料相比时看起来是否相同
答案 0 :(得分:13)
你遗漏了一些语法:
fib :: Int -> Int
fib n
| n == 0 = 1
| n > 1 = error "Invalid Number"
这也可以在没有第一个换行符的情况下编写:
fib :: Int -> Int
fib n | n == 0 = 1
| n > 1 = error "Invalid Number"
此功能更自然地用pattern matching:
表达fib :: Int -> Int
fib 0 = 1
fib n | n > 1 = error "Invalid number"
您可能对the catalogue of fibonaccis感兴趣。