Midoliy |> F# - シーケンス式
シーケンス式
Midoliy|F#プログラミング
シーケンス式の概要
サンプルでみるシーケンス式

シーケンス式の概要


 シーケンス式(= seq式)は、seq型に評価されるコンピュテーション式のことです。シーケンス式を利用することで, PythonやHaskellでいうところのリスト内包表記に似たようなことが実現できます。

// [ 構文 ]
seq { expression }

 構文の「expression」には、シーケンスを生成するための構文を指定することができます。最も簡単な方法は範囲値をそのまま指定することです。
 以下は, 範囲を指定してseq型を生成するサンプルになります。

 上記の他に、yieldキーワードfor..in式を利用した生成の方法があります。


サンプルでみるシーケンス式


 以下はさまざまなシーケンス式のサンプルになります。

do yield

 「 do yield 」キーワードは、for..in式と組み合わせることによって、シーケンスの一部となる値を生成することができます。
 また、「 do yield 」の代わりに「 -> 」演算子を利用することも可能です。

 seq式の中で for..in式を多重利用することも可能です。

if によるフィルタ

 seq式の中で利用されるif式は、フィルターの役割を担っています。たとえば、奇数のみのシーケンスを生成するには、以下のようにfor..in式とif式を組み合わせることで実現可能です。

Seqモジュール

 シーケンスに対して様々な操作をする便利なモジュールがF#には用意されています。それがSeqモジュールです。
 シーケンスの中から特定の値を検索したり、シーケンスを特定の条件でフィルタリングして新たなシーケンスを作成したりすることができます。詳しくはこちらを参考にしてみてください。