私はHaskellを勉強しようとしていますが、私は階乗を計算するために以下の単純な再帰関数を定義しました。機能が小数に適用されているときに、負の数に指定されたエラーが表示されます。どうして?
fact n | n < 0 = error "fact only valid for non-negative integers"
| n == 0 = 1
| n > 0 = n * fact(n-1)
それは、正の整数のために正常に動作し、負の整数で呼び出されたときに予想されるように、それは私が指定したエラーをスローします。
問題が何ですか?:それは私に同じエラー(「事実は負でない整数に対してのみ有効です」)を、分数に適用しようとすると、fact 10.5
のようになります。なぜ私は、明示的に指定したのと同じエラーが、nの場合にのみ適用されるべきであることを意味します。
ありがとうございました!それは当然のことです。私はこれを考え出したはずです。私がそうすることができるとき、答えを受け入れるだろう。 – Curious2learn