sym*_*mon 3 string haskell newline
我有这个代码,而不是打印出"\n",我希望它将下一个字符串放在一个新行上,但似乎无法搞清楚.有什么指针吗?
onSeparateLines :: [String] -> String
onSeparateLines [] = ""
onSeparateLines ( x:[] ) = x
onSeparateLines ( x:xs ) = x ++ "\n" ++ onSeparateLines xs
Run Code Online (Sandbox Code Playgroud)
我得到的是
"AAAA\nAAAA"
Run Code Online (Sandbox Code Playgroud)
应该是:
"AAAA"
"AAAA"
Run Code Online (Sandbox Code Playgroud)
给定的函数和您对"\n"的使用是正确的,因此错误必须在其他地方.在不知道细节的情况下,我怀疑你正在使用(相当于)print而不是putStr打印你的字符串.show在打印之前确保您的字符串不是n.
如果这是在GHCi中,请注意使用print,等等打印值
> onSeparateLines ["foo", "bar"]
Run Code Online (Sandbox Code Playgroud)
将print字符串和显示转义字符.你要
> putStrLn (onSeparateLines ["foo", "bar"])
Run Code Online (Sandbox Code Playgroud)
代替.