我有这段代码,而不是打印出“\n”,我希望它将下一个字符串放在新行中,但似乎无法弄清楚。有指针吗?
onSeparateLines :: [String] -> String
onSeparateLines [] = ""
onSeparateLines ( x:[] ) = x
onSeparateLines ( x:xs ) = x ++ "\n" ++ onSeparateLines xs
我得到的是
"AAAA\nAAAA"
应该是:
"AAAA"
"AAAA"
最佳答案
给定的函数和您对“\n”的使用是正确的,因此该错误必须在其他位置。在不知道详细信息的情况下,我怀疑您正在使用print
(等效于)putStr
而不是show
来打印您的字符串。在打印之前,请确保您的字符串不是print
n。
如果在GHCi中,请注意使用print
打印值,因此
> onSeparateLines ["foo", "bar"]
将ojit_code字符串并显示转义字符。你要
> putStrLn (onSeparateLines ["foo", "bar"])
反而。
关于string - Haskell写 '\n'而不是换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33155110/