2010-05-06 30 views
140

Sé que puede convertir un String a un número con read:Haskell: Convertir Int a cadena

Prelude> read "3" :: Int 
3 
Prelude> read "3" :: Double 
3.0 

Pero, ¿cómo agarrar el String representación de un valor Int?

Respuesta

210

Lo contrario de read es show.

Prelude> show 3 
"3" 

Prelude> read $ show 3 :: Int 
3 
+32

@Lega: Puede encontrar esto útil: http://www.haskell.org/hoogle/?hoogle=Int+-%3E+String. – kennytm

+1

@ KennyTM MUCHAS personas lo encontrarán útil. Un enlace solo es +1, pero para mostrar cómo usarlo ... Eso es +10 ** Gracias:) ** – CoR

+0

Tenga en cuenta que algunas organizaciones/normas desaconsejan fuertemente el uso de "mostrar" debido a su polimorfismo extremo. Una función específica de tipo (o, en el peor de los casos, un programa de envoltura) sería útil. –

0

un ejemplo basado en la respuesta de Chuck:

myIntToStr :: Int -> String 
myIntToStr x 
    | x < 3  = show x ++ " is less than three" 
    | otherwise = "normal" 

Tenga en cuenta que sin la show la tercera línea no se compilará.