Newline in Haskell String?

2019-02-07 17:36发布

How can I create a newline inside a String? Is it possible without using IO ()?

formatRow :: Car -> String
formatRow (a, d:ds, c, x:xs) = a ++ " | " ++ x ++ concat xs ++ " | " ++ show c ++ " | " ++ d ++ concat ds ++ (show '\n')

1条回答
SAY GOODBYE
2楼-- · 2019-02-07 18:36

To create a string containing a newline, just write "\n".

Note that calling show on it will escape the newline (or any other meta-characters), so don't do foo ++ (show "\n") or foo ++ (show '\n') - just use foo ++ "\n".

Also note that if you just evaluate a string expression in ghci without using putStr or putStrLn, it will just call show on it, so for example the string "foo\n" will display as "foo\n" in ghci, but that does not change the fact that it's a string containing a newline and it will print that way, once you output it using putStr.

查看更多
登录 后发表回答