Je sais que vous pouvez convertir une String
en un nombre avec read
:
Prelude> read "3" :: Int
3
Prelude> read "3" :: Double
3.0
Mais comment saisir la représentation String
d'une valeur Int
?
L'opposé de read
est show
.
Prelude> show 3
"3"
Prelude> read $ show 3 :: Int
3
Un exemple basé sur la réponse de Chuck:
myIntToStr :: Int -> String
myIntToStr x
| x < 3 = show x ++ " is less than three"
| otherwise = "normal"
Notez que sans show
, la troisième ligne ne sera pas compilée.
Toute personne qui commence juste avec Haskell et tente d’imprimer un Int, utilisez:
module Lib
( someFunc
) where
someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)