バリケンのErlang日記 RSSフィード

2009-06-20

[] タプルから値を取り出す 14:00  タプルから値を取り出す - バリケンのErlang日記 を含むブックマーク はてなブックマーク -  タプルから値を取り出す - バリケンのErlang日記  タプルから値を取り出す - バリケンのErlang日記 のブックマークコメント

昨日勉強した「タプル」から値を取り出したいときは、Pythonのタプルようにインデックスで取り出すことはできないから、次のようにするよ。ちょっと多重代入のような感じだね。

1> Today = {2009, 6, 20}.
{2009,6,20}
2> {Year, Month, Date} = Today.
{2009,6,20}
3> Year.
2009
4> Month.
6
5> Date.
20
6>

[] f()関数変数束縛を解消する 14:00  f()関数で変数束縛を解消する - バリケンのErlang日記 を含むブックマーク はてなブックマーク -  f()関数で変数束縛を解消する - バリケンのErlang日記  f()関数で変数束縛を解消する - バリケンのErlang日記 のブックマークコメント

変数の束縛関係をすべて忘れるには、f()関数を使うよ。ためしに、さっきの変数束縛を解消してみるよ。

6> f(). 
ok
7> Today.
* 1: variable 'Today' is unbound
8> Year.
* 1: variable 'Year' is unbound
9> Month.
* 1: variable 'Month' is unbound
10> Date.
* 1: variable 'Date' is unbound
11> 

[] 無名変数「_」 14:00  無名変数「_」 - バリケンのErlang日記 を含むブックマーク はてなブックマーク -  無名変数「_」 - バリケンのErlang日記  無名変数「_」 - バリケンのErlang日記 のブックマークコメント

タプルから値を取り出すときに、とくに取り出す必要のない値にまで変数を束縛させたくないときは、無名変数「_」を使うよ。

11> Today = {2009, 6, 20}.
{2009,6,20}
12> {_, Month, _} = Today.      
{2009,6,20}
13> Month.
6
14> 

Erlangの無名変数「_」は、Haskellのワイルドカードと同じようなものだね。