警卫解析错误

Cha*_*ana 0 haskell

factorial :: Int -> Int 

factorial 0 = 1

factorial n 
   | n < 0 == error "Cant call a nagative number"
   | otherwise = n * factorial (n-1)
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么我收到这个错误?

haskell.hs:77:2: parse error on input ‘|’
Run Code Online (Sandbox Code Playgroud)

Eri*_*lun 9

你需要使用=未==在函数定义:

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

  • 我的生命大约30秒! (2认同)