> str = 'wombat'
'wombat'
> is_list str
true
> length str
6
> Enum.reverse str
'tabmow'
整数のリストが文字列として出力される
> [67, 65, 84]
'CAT'
内部表現
io.format/2のオプション
- ~w: データを標準的な記法で出力する
- ~n: 改行する
cf. http://erlang.org/doc/man/io.html#format-2
文字として印字不可な場合、文字コードの列を返す
> str = 'wombat'
'wombat'
> :io.format "~w~n", [str]
[119,111,109,98,97,116]
:ok
> List.to_tuple str
{119, 111, 109, 98, 97, 116}
> str ++ [0]
[119, 111, 109, 98, 97, 116, 0]
> str
'wombat'
Erlangが印字不可と判断するとリストとして表示される
> '∂x/∂y'
[8706, 120, 47, 8706, 121]
> 'x/y'
'x/y'
文字のリストは「リスト」 パターンマッチできるし、Listモジュールの関数を使える
> 'pole' ++ 'vault'
'polevault'
> 'pole' -- 'vault'
'poe'
> List.zip ['abc', '123']
[{97, 49}, {98, 50}, {99, 51}]
> 'abc' ++ [0]
[97, 98, 99, 0]
> '123' ++ [0]
[49, 50, 51, 0]
> [head | tail] = 'cat'
'cat'
> head
99
> [99]
'c'
> tail
'at'
> [head | tail]
'cat'
> [99] ++ tail
'cat'
?c
: 文字cの文字コード(整数)を返す
> c "strings/parse.exs"
[Parse]
> Parse.number('123')
123
> Parse.number('-123')
-123
> Parse.number('+123')
123
> Parse.number('+9')
9
> Parse.number('+a')
** (RuntimeError) Invalid digit 'a'
strings/parse.exs:12: Parse._number_digits/2
> Parse.number('a')
** (RuntimeError) Invalid digit 'a'
strings/parse.exs:12: Parse._number_digits/2