以下代码枚举“向后二进制”
bin :: [Char] -> Int
bin a = temp (a, 1)
where
temp :: ([Char], Int) -> Int
temp ([], n) = 0
temp (('1':x), n) = temp(x, (n*2)) + 1*n
temp (('0':x), n) = temp(x, (n*2))
产生以下错误:
TYPE - Unresolved Overloading
*** Type : Num [Char] => Int
*** Expression : Bin 1001
类似的代码工作正常[Int] - > Int,我不知道为什么它不能这样工作。
答案 0 :(得分:1)
您使用的函数类型不正确,Int
(1001
)当它真正显示[Char]
时,例如bin ['1','0','0','1']
。