Haskell: преобразование Int в строку - PullRequest
177 голосов
/ 07 мая 2010

Я знаю, что вы можете преобразовать String в число с read:

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

Но как получить String представление значения Int?

Ответы [ 3 ]

256 голосов
/ 07 мая 2010

Противоположность read равна show.

Prelude> show 3
"3"

Prelude> read $ show 3 :: Int
3
4 голосов
/ 25 октября 2017

Пример, основанный на ответе Чака:

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

Обратите внимание, что без show третья строка не будет компилироваться.

2 голосов
/ 27 ноября 2018

Любой, кто только начинает работать с Haskell и пытается напечатать Int, использует:

module Lib
    ( someFunc
    ) where

someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)
...