1
我開始編寫Haskell代碼。 我嘗試使用衛兵寫一個斐波納契函數 -建議ScopedTypeVariables在模式類型簽名
fibo :: (Num z, Ord z) => z -> z
fibo d
| d <= 0 = 0
| d == 1 = 1
| otherwise = fibo (d-1) + fibo (d-2)
我得到這個錯誤: -
非法類型簽名: '(民Z,奧德Z)=>ž - >žFIBO d' 也許你打算使用ScopedTypeVariables 在一個模式類型簽名
但是另一個函數 - 複製我寫了類似的方式編譯和工作正常。 我可以寫另一種方式的斐波那契,但我想知道錯誤是什麼
您可以在fibo定義之上加入上下文嗎?爲什麼縮進? – Cirdec
在7.10之前的GHC中,使用'-fwarn-tabs'。在最近的GHC中,請注意此警告,現在默認啓用。並且不要使用標籤。 – dfeuer
順便說一句,你應該可以啓用'ScopedTypeVariables',並學會使用它。這是一個非常有用和友好的擴展。 – dfeuer