かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

手軽なスクリプト言語としてのF# その5

さて、今回はタプルというものを使ってみようと思います。タプル自体の説明は以下を参照するといいと思います。
http://ja.wikipedia.org/wiki/%E3%82%BF%E3%83%97%E3%83%AB

要は、組ということですね。もっと具体的に言うと何個かの値を一まとまりとして扱えるものですかね。定義の仕方は簡単です。

値1,値2,値3, ....

このようにカンマ区切りで値を定義していきます。Listの定義が何でカンマ区切りじゃなくてセミコロン区切りなんだろうと思ってたら、タプルで使われてたからなんですね。


ということで早速使ってみようと思います。

// タプル 値,値,値,...で生成出来る
let tpl = 1,2,3
printfn "%A" tpl

// 値の取り出しはこんな風に代入でやるらしい
let a, b, c = tpl
printfn "a = %d, b = %d, c = %d" a b c

// Listと違って違う型も入れれる
let tpl2 = 1, "two", 3
printfn "%A" tpl2

// 要素が2つのタプルは、専用の値取り出し関数がある
let pair = 1, "two"
printfn "fst = %d, snd = %s" (fst pair) (snd pair)

実行結果は以下のようになります。

(1, 2, 3)
a = 1, b = 2, c = 3
(1, "two", 3)
fst = 1, snd = two

お手軽に関数から複数の値を返したりとかするのにいい感じですね。


さて、タプルとか使うと色々嬉しいこととかが出来るようになるのですが、それはまた別のお話。