Haskell: Перетворення Int в String


199

Я знаю, що ви можете перетворити номер Stringу число за допомогою read:

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

Але як схопити Stringуявлення Intцінності?

Відповіді:


286

Протилежність readIS show.

Prelude> show 3
"3"

Prelude> read $ show 3 :: Int
3

38
@Lega: Це може бути вам корисним: haskell.org/hoogle/?hoogle=Int+-%3E+String .
kennytm

3
@ KennyTM Багато людей вважають це посилання корисним! Посилання одне лише +1, але для показу, як ним користуватися ... Це +10 Дякую :)
CoR

Зауважте, що деякі організації / стандарти сильно перешкоджають використанню "шоу" через його крайній поліморфізм. Була б корисна функція, характерна для типу (або, в гіршому випадку, обгортка навколо шоу).
Джон Ватт

@JonWatte "Можливо", а не "хотів би". На рівні загальності цього питання, я не думаю, що Ваша пропозиція може бути прийнятною.
дуплод

Чи існує спосіб зробити це вручну без функцій системи usyng?
lesolorzanov

4

Приклад, заснований на відповіді Чака:

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

Зверніть увагу, що без showтретього рядка не складатимуться.


4

Усі, хто тільки починає роботу з Haskell і намагається надрукувати Int, використовують:

module Lib
    ( someFunc
    ) where

someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.