haskell和函数声明中的打印问题
这是我的代码:haskell和函数声明中的打印问题,haskell,Haskell,这是我的代码: 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/10的n mod 10+递归来实现这一点,您会遇到一些错误 通过向sumDig sumDig::Int->Int 另一个
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/10的n mod 10+递归来实现这一点,您会遇到一些错误 通过向
sumDig
sumDig::Int->Int
另一个错误是somaDig
未定义。您的意思是键入sumDig
如果是这样,那么最后一个编译错误是在整数上使用/
。您可能需要div
:
sumDig::Int->Int
sumdigi=if(i==0),则0其他((mod i10)+sumDig((i-(mod i10))`div`10)))