Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Haskell:将Int转换为字符串_String_Haskell_Int_Casting - Fatal编程技术网

String Haskell:将Int转换为字符串

String Haskell:将Int转换为字符串,string,haskell,int,casting,String,Haskell,Int,Casting,我知道您可以使用读取将字符串转换为数字: Prelude> read "3" :: Int 3 Prelude> read "3" :: Double 3.0 但是如何获取Int值的字符串表示?读取的反面是show Prelude> show 3 "3" Prelude> read $ show 3 :: Int 3 一个基于Chuck答案的示例: myIntToStr :: Int -> String myIntToStr x | x < 3

我知道您可以使用
读取
字符串
转换为数字:

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

但是如何获取
Int
值的
字符串
表示?

读取
的反面是
show

Prelude> show 3
"3"

Prelude> read $ show 3 :: Int
3

一个基于Chuck答案的示例:

myIntToStr :: Int -> String
myIntToStr x
    | x < 3     = show x ++ " is less than three"
    | otherwise = "normal"
myIntToStr::Int->String
Myintostr x
|x<3=显示x++“小于三”
|否则=“正常”

请注意,如果没有显示,第三行将无法编译。

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

module Lib
    ( someFunc
    ) where

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

@莱加:你可能会发现这个链接很有用:@KennyTM很多人会发现这个链接很有用!一个链接本身就是+1,但是为了展示如何使用它。。。这是+10,谢谢:)请注意,一些组织/标准强烈反对使用“show”,因为它具有极端的多态性。一个特定于类型的函数(或者,最坏的情况是,包装显示)会有帮助。@JonWatte“可能”,而不是“会”。就这个问题的一般性而言,我认为你的建议是不可行的。有没有一种方法可以在不使用YNG系统功能的情况下手动执行?Haskell更惯用的方法是
putStrLn$show x
(使用右关联运算符$)@Arlind:作为一个试图学习Haskell的人,我非常感谢这样的答案。我现在不想成为哈斯克尔专家。我只是想让简单的函数工作,并将结果显示给控制台。以后我就能知道什么是“惯用语”,什么不是“惯用语”。感谢您帮助初学者:-)