我有一个haskell文件sum.hs,内容如下:
sum' :: (Num a) => [a] -> a
sum' [] = 0
sum' (x:xs) = x + sum' xs
通过加载模块,可以在ghci中按预期工作。
但是,如果我尝试在ghci中声明该函数,我会收到错误:
Prelude> sum' [] = 0
Prelude> sum' (x:xs) = x + sum' xs
Prelude> sum' [3,4]
*** Exception: <interactive>:2:1-25: Non-exhaustive patterns in function sum'
请有人解释为什么加载模块有效但在ghci中声明函数会导致此错误吗?