Hatena::Grouperlang

msyktの日記

 | 

2013-10-31

2.9 タプル(p.20)

23:59

Cと違うのは、タプルの各フィールドには名前がない点だ。タプル自体は整数のペアを持つだけなので、タプルが何に使われているかを覚えておかないといけない。タプルが何に使われているかを思い出しやすくするため、タプルが表現するものを示すアトムを最初の要素に入れておくことが多い。

このCの構造体とタプルの比較の話はなるほどと思った。普段タプルがある言語を使わないので気にしたことが無かったが、最初の要素に識別子を入れるというのはそういう対比で説明できるのか。

複雑なタプルから値を取り出すには、タプルと同じ形(構造)で、タプルの取り出したい値に対応する箇所に未束縛変数を置いたパターンを書けばよい。

シンボル_は無名変数と呼ばれる。_は通常の変数とは異なり、1つのパターンの中で何度か使う場合でも同じ値に束縛されなくても良い。

「_」は無名変数と呼ぶのか。てっきりワイルドカードなのかと思ってた。

Eshell V5.10.1  (abort with ^G)
1> A = {foo, {bar, {hoge, hogehoge}}}.
{foo,{bar,{hoge,hogehoge}}}
2> {_, {_, {_, Deepest}}} = A.
{foo,{bar,{hoge,hogehoge}}}
3> Deepest.
hogehoge
プログラミングErlang

プログラミングErlang

 |