factorial :: Int -> Int
factorial 0 = 1
factorial n
| n < 0 == error "Cant call a nagative number"
| otherwise = n * factorial (n-1)
有人可以解释我收到此错误的原因吗?
haskell.hs:77:2: parse error on input ‘|’
答案 0 :(得分:9)
您需要在函数定义中使用=
而不是==
:
factorial :: Int -> Int
factorial 0 = 1
factorial n
| n < 0 = error "Cant call a nagative number"
| otherwise = n * factorial (n-1)
=
是一个用于定义事物的句法原子; ==
是用于比较值的函数/运算符。