Idris2/tests/base/data_string_lines001/Lines.idr
Stepan Koltsov ce44d3b50a
Change semantics of lines and unlines function to match Haskell and other languages (#1585)
* Add trailing newline on non-empty list in unlines

There are several reasons to do that:
* a line in a text file is something which ends with newline,
  and the last line is not special
* `unlines []` should be different from `unlines [""]`
* `unlines (a ++ b) = unlines a ++ unlines b`
* Haskell does it

* Change lines function behaviour
2021-07-17 14:54:23 +01:00

12 lines
303 B
Idris

import Data.String
main : IO ()
main = do printLn (lines "")
printLn (lines "ab")
printLn (lines "ab\n")
printLn (lines "ab\ncd")
printLn (lines "ab\ncd\n")
printLn (lines "a\rb")
printLn (lines "a\r\nb")
printLn (lines "\n\r\n\n")