Haskell中的函数保护语法

时间:2011-04-24 04:06:22

标签: haskell syntax functional-programming

fib::Int->Int
fib n
    n==0        = 1
    n>1     = error "Invalid Number"

这个函数给我一个错误

Syntax error in declaration (unexpected symbol "==")

我不确定该功能在与阅读材料相比时看起来是否相同

1 个答案:

答案 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感兴趣。