Я программист на С++, который пытается научить себя Haskell, и это доказывает сложность понимания основ использования функций как типа цикла. У меня большое число, 50!, и мне нужно добавить сумму его цифр. Это относительно легкий цикл в С++, но я хочу узнать, как это сделать в Haskell.
Я прочитал несколько вводных руководств и могу получить 50! с
sum50fac.hs::
fac 0 = 1
fac n = n * fac (n-1)
x = fac 50
main = print x
К сожалению, на данный момент я не совсем уверен, как подойти к проблеме. Можно ли написать функцию, которая добавляет (mod) x 10 к значению, а затем снова вызывает ту же функцию на x/10, пока x/10 не станет меньше 10? Если это невозможно, как я должен подходить к этой проблеме?
Спасибо!