Haskell:将Int转换为String

Squ*_*ama 189 string int haskell casting

我知道您可以将a转换String为数字read:

Prelude> read "3" :: Int
3
Prelude> read "3" :: Double 
3.0
Run Code Online (Sandbox Code Playgroud)

但是你如何抓住价值的String代表Int

Chu*_*uck 270

相反的readshow.

Prelude> show 3
"3"

Prelude> read $ show 3 :: Int
3
Run Code Online (Sandbox Code Playgroud)

  • @Lega:您可能会觉得这很有用:http://www.haskell.org/hoogle/?intel = Int +-%3E + String. (36认同)
  • @ KennyTM很多人会发现该链接有用!单独的链接是+1,但用于显示如何使用它... +10 **谢谢:)** (2认同)

Arl*_*ind 8

任何刚开始使用 Haskell 并尝试打印 Int 的人,请使用:

module Lib
    ( someFunc
    ) where

someFunc :: IO ()
x = 123
someFunc = putStrLn (show x)
Run Code Online (Sandbox Code Playgroud)

  • @Arlind:作为一个试图学习 Haskell 的人,我*真的*很欣赏这样的答案。我目前并不想成为 Haskell 专家。我只是想让简单的函数工作并将结果显示到控制台。后来我可以了解什么是“惯用语”,什么不是“惯用语”。感谢您帮助初学者:-) (2认同)

pra*_*ad_ 6

一个基于查克回答的例子:

myIntToStr :: Int -> String
myIntToStr x
    | x < 3     = show x ++ " is less than three"
    | otherwise = "normal"
Run Code Online (Sandbox Code Playgroud)

请注意,没有show第三行将无法编译。