[haskell] IntとIntegerの違いは何ですか?


Answers

Intは機械定数の型で、保証された範囲は-2 29〜2 29 - 1で、 Integerは任意の精度の整数で、メモリがある範囲の大きさです。

https://mail.haskell.org/pipermail/haskell-cafe/2005-May/009906.html

Question

Haskellでは、 IntInteger違いは何ですか? 答えはどこに文書化されていますか?




Integerは、 Int#が格納できる最大値より大きくなるまで、 Int#として実装されます。 その時点で、それはGMP番号です。




IntはC intです。つまり、値の範囲は-2147483647〜2147483647ですが、 Z全体の整数の範囲は任意に大きくすることができます。

$ ghci
Prelude> (12345678901234567890 :: Integer, 12345678901234567890 :: Int)
(12345678901234567890,-350287150)

Intリテラルの値に注目してください。




Related