在Haskell中,哪些函数或一系列函数可以将Int32转换为Int?我知道HashTable.hashString可以转换为Int32,但我需要一个可以转换为其他方式的函数。
答案 0 :(得分:14)
ghci> import Data.Int
ghci> fromIntegral (5 :: Int32) :: Int
5
ghci> fromIntegral (5 :: Int) :: Int32
5
答案 1 :(得分:6)
停止。 Hoogle time!...可悲的是,这次Hoogle未能很好地回答这个问题。跳到答案......
fromIntegral :: (Integral a, Num b) => a -> b
请注意fromIntegral
的类型签名表示它会将任何Integral
转换为任何Num
。由于Int32
的声明实例为Integral
,而Int
的声明实例为Num
,因此fromIntegral
函数将完成此任务。
答案 2 :(得分:2)
fromIntegral
将从Int32转换为Int或反过来。