2011-02-02 111 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函數將執行此作業。