私は、32ビット整数の長さを超える数値を処理する関数をHaskellで書いています。これを行うタイプが見つからず、間違った用語を検索しているようです。
精度を損なうことなく、約2^40の長さの数値を保持できる必要があります
例:
addTwo :: Int -> Int -> Int
addTwo a b = a + b
main :: IO()
main = do
putStrLn ( show ( addTwo 700851475143 1 ) )
無制限の精度の場合は、Integer 型を使用します。プラットフォーム全体で 64 ビットの精度を得るには、Data.Int.Int64 を使用します。どちらも Hoogle で簡単に見つけることができます: http://haskell.org/hoogle/
Integer
次の代わりにデータ型が必要ですInt
:
addTwo :: Integer -> Integer -> Integer
Integer
の代わりに、無制限の精度であるを使用しInt
ます。