这是我的代码:
sumDig i = if (i == 0) then 0 else ((mod i 10) + somaDig ((i-(mod i 10)/10)))
main = do
print (sumDig 4)
它没有工作,我不知道为什么......它没有编译,编译器消息没有帮助
该函数只是对给定数字的所有字符求和,例如:123 = 1 + 2 + 3 = 6,它使用n mod 10 + n / 10递归
答案 0 :(得分:1)
你有一些错误。
可以通过向sumDig
sumDig :: Int -> Int
另一个错误是somaDig
未定义。您的意思是键入sumDig
吗?
如果是这样,那么最后一个编译错误就是在整数上使用/
。您可能需要div
代替:
sumDig :: Int -> Int
sumDig i = if (i == 0) then 0 else ((mod i 10) + sumDig (((i-(mod i 10)) `div` 10)))