リスト内包表記
中括弧 { } {\displaystyle \{\}} は結果が集合であることを表す。
縦棒 ∣ {\displaystyle \mid } は「SUCH THAT」と読む。 縦棒とコロン 「:」は同じ意味で使用される。
カンマは述語を区切り、「AND」と読まれる。
リスト内包表記は、入力されたリストまたはイテレータからの新たなリストの生成を表すためにこれと同じ構文構造を用いるものである。
入力リストのメンバを表す変数。
入力リスト(またはイテレーター)。
述語式(任意)。
述語を満たす入力イテラブルのメンバから出力リストのメンバを生成する出力式。
出力リストのメンバーの生成順序は、入力内のアイテムの順序に基づく。
Haskellのリスト内包表記では、このような集合内包表記は同様に次のように記述される。
ここで、リスト[0..]は N {\displaystyle \mathbb {N} } 、 x^2>3は述語式を表し、 2*xは出力式を表す。
リスト内包表記は(集合のそれとは異なり)リストで定義された順序で結果を返す。また先のHaskellの例における無限長のリストのような定義を受け入れるために、リスト内包表記はリスト全体を変換するのではなく、リストのメンバを順に生成するようなジェネレータを返却する。