n までのすべての奇数を合計するプログラムを実行しています。
oddSum' n result | n==0 = result
| otherwise = oddSum' (n-1) ((mod n 2)*(n)+result)
oddSum n = oddSum' n 0
入力に対して 2 つのエラーが発生します (以下に示します)。末尾再帰を使用しているのに、スタック オーバーフローが発生するのはなぜですか? (注:UbuntuでHugsを使用しています)
oddSum 20000 ERROR - コントロール スタック オーバーフロー
oddSum 100000 ERROR - ガベージ コレクションで十分なスペースを再利用できません