2026-08-21
Factorial.hs
factorial :: Integer -> Integer
factorial n = n * factorial (n - 1)
このコードは決して終了しません。修正してください。
答え
基底ケースがないため、0を通り過ぎて負の数に入っても、止まることなく永遠に再帰し続けます。再帰のケースより前に、独立した等式としてfactorial 0 = 1を追加してください。
毎日コード。手助けなし。
Factorial.hs
factorial :: Integer -> Integer
factorial n = n * factorial (n - 1)
このコードは決して終了しません。修正してください。
基底ケースがないため、0を通り過ぎて負の数に入っても、止まることなく永遠に再帰し続けます。再帰のケースより前に、独立した等式としてfactorial 0 = 1を追加してください。