4
getNext a = if even a then a/2 else (3*a)+1
由於某種原因,此行代碼返回無法解析的重載錯誤。Haskell中無法解析的重載錯誤
Main> getNext 13
ERROR - Unresolved overloading
*** Type : (Fractional a, Integral a) => a
我在做什麼錯,或者我錯過了什麼?我在一段時間內沒有使用Haskell,所以我可能會忘記一些事情。
錯誤的意思是:「你想要一個滿足約束'Fractional'和'Integral'的類型,但我不知道任何類型。」此外,這也可能與默認值(在'Num'上下文中使用)有關,所以問題在於'13'是多態的,'getNext'也是多態的,所以即使有一個類型, d得到類似於執行如下操作的錯誤:'show。 read'。 – Bakuriu