Weird Output when doing list concatenation and subtraction

String.Chars for lists is implemented to consider the lists as a list of unicode code points.

The 87 represents the W you see represents the at the beginning of the line, the 13 (Carraige return) causes that it is printed at the beginning of the line.

23, 6, 3, 2, and 1 are some other kind of control characters, usually ignored by modern terminals.

If you want to see the list you need to use inspect, within the interpolation, eg. IO.puts("l1: #{inspect(l1)}").

2 Likes