かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

手軽なスクリプト言語としての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

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


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