Idris2/tests/base/data_string_unlines001/Unlines.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

10 lines
351 B
Idris

import Data.String
main : IO ()
main = do printLn ("<" ++ (unlines []) ++ ">")
printLn ("<" ++ (unlines ["ab"]) ++ ">")
printLn ("<" ++ (unlines ["a", "b"]) ++ ">")
printLn ("<" ++ (fastUnlines []) ++ ">")
printLn ("<" ++ (fastUnlines ["ab"]) ++ ">")
printLn ("<" ++ (fastUnlines ["a", "b"]) ++ ">")