Haskell : Int를 문자열로 변환


199

나는 다음 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이지만 사용 방법을 보여 주셔서 감사
CoR

일부 조직 / 표준은 극단적 인 다형성 때문에 "쇼"를 사용하지 않는 것이 좋습니다. 유형별 기능 (또는 최악의 경우 래퍼 쇼)이 도움이 될 것입니다.
Jon Watte

@JonWatte "Wight"가 아닌 "Wight"입니다. 이 질문의 일반성 수준에서 귀하의 제안이 실행 가능한 것으로 생각하지 않습니다.
duplode

시스템 기능을 사용하지 않고 수동으로 수행 할 수있는 방법이 있습니까?
lesolorzanov 2012

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)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.