2015-10-10 49 views
0
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 ‘|’ 

回答

9

需要在一个功能定义中使用===

factorial :: Int -> Int 
factorial 0 = 1 
factorial n 
    | n < 0  = error "Cant call a nagative number" 
    | otherwise = n * factorial (n-1) 
  • =是用于定义事物的句法原子;
  • ==是用于比较值的函数/运算符。
+0

所以很抱歉浪费你的时间,至少你得到回答我的问题 – Charana

+2

以及我的生活约30秒的积分! –

+1

@Charana:我可以看到你几乎没有接受任何你的问题的答案,包括这一个 - 你应该改变这种习惯! –