2011-02-02 82 views
8

什么函数或一系列函数可以将Int32转换为Haskell中的Int?我知道HashTable.hashString可以转换为Int32,但我需要一个可以转换其他方式的函数。Int32 to Int in Haskell

回答

12
ghci> import Data.Int 
ghci> fromIntegral (5 :: Int32) :: Int 
5 
ghci> fromIntegral (5 :: Int) :: Int32 
5 
+2

欢迎来到多态返回类型!当我第一次遇到哈斯克尔时,这些非常神秘。 – Daniel 2011-02-03 14:38:46

2

fromIntegral将从Int32转换为Int或其他方式。

6

停止。 Hoogle time!...不幸的是,Hoogle这次没有很好地回答这个问题。跳绳的答案...

fromIntegral :: (Integral a, Num b) => a -> b

(docs at hackage.haskell.org)

fromIntegral类型签名表示它会变成任何Integral到任何Num。由于Int32具有Integral的声明实例,并且Int具有Num的声明实例,因此fromIntegral函数将执行此作业。