getNext a = if even a then a/2 else (3*a)+1
由于某种原因,这行代码返回一个未解决的重载错误。
Main> getNext 13
ERROR - Unresolved overloading
*** Type : (Fractional a, Integral a) => a
我做错了什么或我错过了什么?我很久没有使用过Haskell所以我可能忘记了一些事情。
答案 0 :(得分:7)
你可能想要
a `div` 2
而不是
a/2
发生错误是因为even a
意味着a
是一个整数,但使用非整数除法运算符/
则意味着其他情况。