Haskell:IntからStringへの変換


198

私はあなたがa Stringを数値に変換できることを知っていますread

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

しかし、どのようにして値のString表現を取得しIntますか?

回答:


286

の反対readです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

一部の組織/標準では、極端な多態性のため、「show」の使用を強く推奨していません。タイプ固有の関数(または、最悪の場合、ショーのラッパー)が役立ちます。
Jon

@JonWatte「可能性」ではなく「可能性」。この質問の一般性のレベルでは、あなたの提案は実用的ではないと思います。
デュプロード

システム機能を使用せずに手動でこれを行う方法はありますか?
lesolorzanov 2017

4

チャックの答えに基づく例:

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

注ことなく、そのshow3行目はコンパイルされません。


4

Haskellから始めてIntを印刷しようとしている人は、次のように使用します。

module Lib
    ( someFunc
    ) where

someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.