String Haskell字符串中的换行符?

String Haskell字符串中的换行符?,string,haskell,newline,String,Haskell,Newline,如何在字符串中创建换行符?是否可以不使用IO() 要创建包含换行符的字符串,只需编写“\n” 如果您在Windows上运行程序,它将自动运行到“\r\n” 请注意,在其上调用show将转义换行符(或任何其他元字符),因此不要执行foo++(show“\n”)或foo++(show'\n')-只需使用foo++“\n” 还请注意,如果您只是在GHCi中计算字符串表达式,而不使用putStr或putStrLn,则它只会在其上调用show,因此例如字符串“foo\n”在GHCi中显示为“foo\n”,

如何在字符串中创建换行符?是否可以不使用
IO()


要创建包含换行符的字符串,只需编写
“\n”

如果您在Windows上运行程序,它将自动运行到
“\r\n”

请注意,在其上调用
show
将转义换行符(或任何其他元字符),因此不要执行
foo++(show“\n”)
foo++(show'\n')
-只需使用
foo++“\n”


还请注意,如果您只是在GHCi中计算字符串表达式,而不使用
putStr
putStrLn
,则它只会在其上调用
show
,因此例如字符串
“foo\n”
在GHCi中显示为
“foo\n”
,但这并不能改变这样一个事实,即它是一个包含换行符的字符串,当您使用
putStr

输出它时,它将以这种方式打印,所以我应该使用putStrLn,这样可以正确显示?@Ash:而不是什么?如果要一次打印一行,只需使用
putStrLn
,而无需在字符串中添加换行符。如果要在打印行之前将行连接在一起,仍然需要追加换行符(使用
“\n”
,而不是
显示“\n”)
,然后使用
putStr
putstrn
打印结果字符串。感谢
putStr
,对于像我这样的绝对无趣的人来说,搜索“为什么我的换行符没有按我希望的那样显示在ghci中”非常有用。你可以通过1)向我们提供
汽车
类型的定义,以及2)给出所需结果的示例,使问题更清楚。根据您使用它们的方式,我们可以假设
xs
ds
是字符串,
a
d
x
是字符,但是整个示例代码在没有进一步上下文的情况下非常奇怪。请在中搜索
\n
,以供参考。
formatRow :: Car -> String
formatRow (a, d:ds, c, x:xs) = a ++ " | " ++ x ++ concat xs ++ " | " ++ show c ++ " | " ++ d ++ concat ds ++ (show '\n')