2011-02-02 15 views
8

¿Qué función, o serie de funciones, puede convertir un Int32 a un Int en Haskell? Sé que HashTable.hashString puede convertir a Int32, pero necesito una función que se pueda convertir de otra manera.Int32 a Int en Haskell

Respuesta

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

¡Bienvenido a tipos de retorno polimórficos! Estos fueron muy misteriosos cuando conocí a Haskell. – Daniel

2

fromIntegral convertirá de Int32 a Int o al revés.

6

Parada. Hoogle time! ... Tristemente, Hoogle no responde bien la pregunta esta vez. Saltarse a la respuesta ...

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

(docs at hackage.haskell.org)

Nota del tipo de firma de fromIntegral indica que va a convertir cualquier Integral en cualquier Num. Como Int32 tiene una instancia declarada de Integral, y Int tiene una instancia declarada de Num, la función fromIntegral hará el trabajo.