質問: 各位の和を求める作業について、C言語ではよく耳にしますが、Haskellではどうすればいいのか疑問になりました。 ここで、私は0以上の整数nの各位の和を求める関数`keta_goukei(n)`を以下のように作ってみました。 ``` keta_goukei(n)=if 0<=n && n<10 then n else n `mod` 10+keta_goukei(n/10) ``` nが一桁の整数ならば(`0<=n && n<10`)、桁の合計はnであり(`then n`)、そうでなければ、桁の合計はnの1の位の数+nの10の位より上位の桁からなる整数の桁の合計であると考えたのですが、後者についてどうプログラムすればいいのかわかりませんでした。 nが二桁以上の整数になるとき、まず最初にnを10で割ったときの余り(`mod n 10`)に、上位の桁からなる整数を10で割った余りをどんどん足していくのだと思いますが、それをどのようにプログラムすればいいのでしょうか。
回答: どういうエラーで困っているのかが分からないので解説ができないのですが、下記で定義できます。 ``` keta_goukei n = if 0 <= n && n < 10 then n else n `mod` 10 + keta_goukei (n `div` 10) ```