I assume you expect the result [110, 10, 110]. The thing is that you in fact do get that result. However, a list of integers will be displayed as the character string (aka Erlang string) if all of its elements are ASCII codes representing printable characters. This is briefly mentioned in the book at the end of page 46 (PDF page 71).

You can easily verify this in iex:

iex(1)> [110, 10, 110]
'n\nn'

And you can also check that both values are the same thing:

iex(2)> [110, 10, 110] == 'n\nn'
true

If there is a non-printable character in the list, then a list of integer is displayed. This is the reason why you see integers if you add a couple of short lines, since 1, 2, and 3 don't correspond to printable characters.

If you're using inspect or IO.inspect to display your results, you can explicitly disable this conversion: