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')
lines breaks a ByteString up into a list of ByteStrings at newline Chars ('\n'). The resulting strings do not contain newlines.
putStr is much like putStrLn in that it takes a string as a parameter and returns an I/O action that will print that string to the terminal, only putStr doesn't jump into a new line after printing out the string while putStrLn does. putStrLn "Andy!"
To create a string containing a newline, just write "\n"
.
If you run your program on Windows, it will automatically be converted to "\r\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
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With