The form lines s is designed to break lines correctly when the file follows the Unix or MS-DOS convention. In other words, it will break a line at \r\n or \n.
i1 : lines "a\nb\nc\n"
o1 = {a, b, c}
o1 : List
|
i2 : peek oo
o2 = {"a", "b", "c"}
|
i3 : lines "a\nb\nc\nd"
o3 = {a, b, c, d}
o3 : List
|
i4 : peek oo
o4 = {"a", "b", "c", "d"}
|
i5 : lines( "\\.", "a.b.c." )
o5 = {a, b, c}
o5 : List
|
i6 : peek oo
o6 = {"a", "b", "c"}
|
i7 : lines( "\\.", "a.b.c.d" )
o7 = {a, b, c, d}
o7 : List
|
i8 : peek oo
o8 = {"a", "b", "c", "d"}
|
For backwards compatibility, if the pattern is a single character and it is an unescaped special character, such as +, *, or ., then it is treated as a literal character. In future code, the pattern must be escaped.
The object lines is a function closure.