私はTerminalからghciを実行しています。私のソースファイルでHaskellの異常な問題
が、私は
factorial :: Int -> Int
factorial n = product [1 .. n]
を定義し、私はこれを実行すると、私は13未満、任意の数のために
factorial 13 = 1932053504
product [1 .. 13] = 6227020800
結果を取得し、結果は正しいです。しかしながら、12以上の任意の数については、2つの結果は一致しない。私は、この関数の再帰定義した場合
また:
factorial' :: Int -> Int
factorial' 0 = 1
factorial' (n + 1) = (n + 1) * factorial' n
を私はまだあなたがここで何が起きているか理解していれば、それは非常に参考になる
factorial' 13 = 1932053504
を取得します。ありがとう
ところでをこれはポリモーフィックである可能性がありますが、とりわけInteger型を選択するデフォルトシステムを使用します。だからこそ、 'product [1..13]'は異なるタイプのものです。 –
その隣にあるチェックマークをクリックすると、その答えを受け入れることを忘れないでください。 – rampion