我开始编写 Haskell 代码。我尝试使用 Guards 编写斐波那契函数 -
fibo :: (Num z, Ord z) => z -> z
fibo d
| d <= 0 = 0
| d == 1 = 1
| otherwise = fibo (d-1) + fibo (d-2)
我收到了这个错误:-
非法类型签名:'(Num z, Ord z) => z -> z fibo d' 也许您打算在模式类型签名中使用 ScopedTypeVariables
然而,另一个函数 - 复制我以类似的方式编写,编译和工作正常。我可以用另一种方式写斐波那契,但我想知道错误是什么