ElixirのHeadとTailについて

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

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

[bash]
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]
[/bash]

ちなみに、リストを分割する関数も存在する。
[bash]
iex(5)> hd(list)
1
iex(6)> tl(list)
[2, 3, 4, 5]
[/bash]

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

This entry was posted in Elixir, 技術情報. Bookmark the permalink.

コメントを残す

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