我有这段代码,而不是打印出“\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/

10-10 18:25