Я знаю, что вы можете преобразовать String в число с read:
String
read
Prelude> read "3" :: Int 3 Prelude> read "3" :: Double 3.0
Но как получить String представление значения Int?
Int
Противоположность read равна show.
show
Prelude> show 3 "3" Prelude> read $ show 3 :: Int 3
Пример, основанный на ответе Чака:
myIntToStr :: Int -> String myIntToStr x | x < 3 = show x ++ " is less than three" | otherwise = "normal"
Обратите внимание, что без show третья строка не будет компилироваться.
Любой, кто только начинает работать с Haskell и пытается напечатать Int, использует:
module Lib ( someFunc ) where someFunc :: IO () x = 123 someFunc = putStrLn (show x)