ElixirのHeadとTailについて

2016年7月16日 Posted by PURGE

[head | tail]の挙動が、いまひとつわからなかった。
しかし、どうもErlang や Elixir の構文では、この概念が重要な気がしたので、ちょっと理解をしようと思う。

リストを作成して、[head | tail]で受けると、リストの先頭と、それ以降が分割される。

iex(1)> list = [1,2,3,4,5]
[1, 2, 3, 4, 5]
iex(2)> [head | tail] = list
[1, 2, 3, 4, 5]
iex(3)> head
1
iex(4)> tail
[2, 3, 4, 5]

ちなみに、リストを分割する関数も存在する。

iex(5)> hd(list)
1
iex(6)> tl(list)
[2, 3, 4, 5]

この概念は、再帰処理とかで基本になるので、ここで整理しておく。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です