2011-02-02 4 views
8

하스켈에서 Int32를 Int32로 변환 할 수있는 함수 또는 일련의 함수는 무엇입니까? HashTable.hashString은 Int32로 변환 할 수 있지만 다른 방법으로 변환 할 수있는 함수가 필요하다는 것을 알고 있습니다.하스켈의 Int32에서 Int32로

답변

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

다형성 반환 유형에 오신 것을 환영합니다! 나는 처음으로 haskell을 만났을 때 매우 신비했다. – Daniel

2

fromIntegral은 Int32에서 Int 또는 다른 방법으로 변환합니다.

6

중지. Hoogle time! ... 슬프게도, 이번에는 Hoogle이 질문에 잘 대답하지 않습니다. ... 대답 건너 뛰기

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

(docs at hackage.haskell.org)

fromIntegral의 유형 서명은 어떤 Num에 어떤 Integral을 설정을 나타냅니다. Int32은 선언 된 인스턴스가 Integral이고 Int은 선언 된 인스턴스가 Num이므로 fromIntegral 함수가 작업을 수행합니다.