F# と C# の記法比較

MSDN F# リファレンスを使い C# と記法を比較する

コレクション型

F# コレクション型 F# Collection Types

元ネタ http://msdn.microsoft.com/ja-jp/library/hh967652.aspx

System.Collections.Generic の名前空間の要素などの .NET Framework とは異なります。 具体的には、配列のコレクションにのみ変更可能な要素があります。

  • List 順序付きで、変更不能な、同じ型の要素の列です。
  • 配列 サイズ固定で、0オリジンで、変更可能な、同じ型の連続した要素のコレクションです。
  • シーケンス シーケンスは IEnumerableのエイリアスです seq<'T> の型で表されます。
  • マップ 要素のディクショナリ。 要素はキーによってアクセスします。
  • Set 比較には、キー値の IComparable のインターフェイスの実装を使用する F# の構造的な比較関数である

関数の表

コレクションに対する関数群。非常に多いが、LINQ のメソッドか STL のように覚えると効率が良いかも。

  • Append 2 番目のコレクションの要素に続く最初のコレクションの要素を含む新しいコレクションを返します。
  • add 追加された要素を持つ新しいコレクションを返します。
  • average コレクション内の要素の平均を返します。
  • averageBy 各要素に適用される指定された関数の結果の平均を返します。
  • blit 配列のセクションをコピーします。
  • cache シーケンスの数の要素に格納します。
  • cast 指定された型に要素を変換します。
  • choose 指定された関数 f をリストの各要素 x に適用します。 Some(f(x))関数がを返す各要素の結果を含むリストを返します。
  • collect 指定された関数をコレクションの各要素に適用し、すべての結果を連結して、結合リストを返します。
  • compareWith 指定された比較関数、要素ごとに、要素を使用して 2 二つのシーケンスを比較します。
  • concat 指定された列挙体の列挙体を、1 つの連結された列挙体として結合します。
  • contains 設定した要素が含まれている場合、true を返します。
  • containsKey 要素がマップのドメインにあるかどうかをテストします。
  • count セット内の要素数を返します。
  • countBy キー生成関数をシーケンスの各要素に適用し、元のシーケンスの生成の一意キーと数を格納するシーケンスを返します。
  • Copy コレクションをコピーします。
  • Create 最初にある特定の値である要素全体の配列を作成します。
  • delay 指定したシーケンスの遅延指定から作成されたシーケンスを返します。
  • difference 最初のセットから削除される 2 番目のセットの要素を含む新しいセットを返します。
  • distinct エントリの汎用ハッシュと等価比較に従って、重複するエントリを含まないシーケンスを返します。 要素がシーケンス内に複数回発生した場合、それ以降の生成は破棄されます。
  • distinctBy 指定されたキー生成関数はを返します。キーの汎用ハッシュと等価比較に従って、重複するエントリを含まないシーケンスを返します。 要素がシーケンス内に複数回発生した場合、それ以降の生成は破棄されます。
  • Empty 空のコレクションを作成します。
  • exists シーケンスのすべての要素が、指定された述語を満たすかどうかをテストします。
  • exists2 のペアの入力シーケンスの対応する要素が、指定された述語を満たすかどうかをテストします。
  • fill 特定の値に配列の要素の範囲を設定します。
  • filter 指定された述語が trueを返すコレクションの要素のみを含む新しいコレクションを返します。
  • Find 指定した関数が true を返す最初の要素を返します。 そのような要素が存在しない場合は、KeyNotFoundException を返します。
  • findIndex 指定した述語を満たす配列内の最初の要素のインデックスを返します。 述語を満たす要素が KeyNotFoundException を発生させます。
  • findKey コレクション内の各マッピングで関数を評価し、true関数がを返す最初のマッピングのキーを返します。 そのような要素が存在しない場合、この関数は KeyNotFoundException を発生させます。
  • fold 計算にアキュムレータ引数を使用しながら、コレクションの各要素に関数を適用します。 f 入力関数がで、要素が i0…場合、この関数の計算 f (… f (s) i0…)。
  • fold2 計算にアキュムレータ引数を使用しながら、2 つのコレクションの対応する要素に関数を適用します。 各コレクションは同じサイズである必要があります。 f 入力関数がで、要素が i0 j0…、… jN 場合、この関数の計算 f (… f (s) i0 j0…) jN。
  • foldBack 計算にアキュムレータ引数を使用しながら、コレクションの各要素に関数を適用します。 f 入力関数がで、要素が i0…場合は、を計算 i0 f (…) の f (s)。
  • foldBack2 計算にアキュムレータ引数を使用しながら、2 つのコレクションの対応する要素に関数を適用します。 各コレクションは同じサイズである必要があります。 f 入力関数がで、要素が i0 j0…、… jN 場合は、を計算 i0 f (j0… jN の f (s) )。
  • forall コレクションのすべての要素が、指定された述語を満たすかどうかをテストします。
  • forall2 コレクションの対応するすべての要素が、指定された述語をペア単位で満たすかどうかをテストします。
  • get/nth インデックスを持つコレクションから要素を返します。
  • head コレクションの最初の要素を返します。
  • init ディメンション、およびジェネレーター関数を持つコレクションの要素を計算するために作成します。
  • initInfinite シーケンスが生成されます、は、一連の要素特定の関数を呼び出して、反復処理されるとき。
  • intersect 2 セットの積集合を計算します。
  • intersectMany セットのシーケンスの積集合を計算します。 シーケンスは空である必要があります。
  • isEmpty コレクションが空の場合 true を返します。
  • isProperSubset 最初のセットのすべての要素が 2 番目のセットに含まれ、2 番目のセットに少なくとも 1 個の要素は最初のセットにありません true を返します。
  • isProperSuperset 2 番目のセットのすべての要素が最初のセットに存在する場合は、最初の 1 文字以上の要素が 2 番目のセットに存在しない true を返します。
  • isSubset 最初のセットのすべての要素が 2 番目のセットに存在 true を返します。
  • isSuperset 2 番目のセットのすべての要素が最初のセットに存在 true を返します。
  • iter 指定された関数をコレクションの各要素に適用します。
  • iteri 指定された関数をコレクションの各要素に適用します。 関数に渡される整数は要素のインデックスを示します。
  • iteri2 2 種類の配列内の一致するインデックスの要素のペアに、指定された関数を適用します。 関数に渡される整数は要素のインデックスを示します。 2 種類の配列は同じ長さである必要があります。
  • iter2 2 種類の配列内の一致するインデックスの要素のペアに、指定された関数を適用します。 2 種類の配列は同じ長さである必要があります。
  • Length コレクションの要素数を返します。
  • map 要素が配列の各要素に指定された関数を適用し、その結果コレクションを構築します。
  • map2 要素に 2 個のコレクションの対応する要素に指定された関数をペアに適用し、その結果コレクションを構築します。 2 個の入力配列は同じ長さである必要があります。
  • map3 要素に 3 個のコレクションの対応する要素に指定された関数を同時に適用し、その結果コレクションを構築します。
  • mapi 要素が配列の各要素に指定された関数を適用した結果である配列を作成します。 関数に渡される整数のインデックスは、変換する要素のインデックスを示します。
  • mapi2 要素に 2 個のコレクションの対応する要素に指定された関数をペアに適用し、その結果を要素のインデックスを渡しますコレクションを構築します。 2 個の入力配列は同じ長さである必要があります。
  • max [最大値] の演算子を使用して比較されるコレクションの最大の要素を返します。
  • maxBy 関数の結果を [最大値] を使用して比較されるコレクションの最大の要素を返します。
  • maxElement 指示に従ってセットの大きな要素が使用されますセットに返します。
  • min [最小値] の演算子を使用して比較されるコレクション最小の要素を返します。
  • minBy 関数の結果を [最小値] の演算子を使用して比較されるコレクション最小の要素を返します。
  • minElement 指示に従ってセットの最小要素が使用されますセットに返します。
  • ofArray 指定された配列と同じ要素を含むコレクションを作成します。
  • ofList 指定されたリストと同じ要素を含むコレクションを作成します。
  • ofSeq 指定されたシーケンスと同じ要素を含むコレクションを作成します。
  • pairwise 2 番目の要素の先行処理としてのみを返す最初の要素を除いた入力シーケンスの各要素と元のシーケンスを返します。
  • partition 2 種類のコレクションに分割します。 最初のコレクションは、指定した述語がを返す true、2 番目のコレクションは false指定した述語がを返す要素が含まれます要素が含まれています。
  • permute 指定された置換に従ってすべての要素を置換した配列を返します。
  • pick 関数が Some を返す最初の結果を返す一連の要素に指定された関数を適用します。 関数は一部を返す、KeyNotFoundException が発生します。
  • readonly 指定されたシーケンスへオブジェクトのシーケンスとデリゲート オブジェクトを作成します。 この操作は型のキャストを元のシーケンスを再発見し、変更できなくなります。 たとえば、配列は、返されたシーケンスは配列の要素を返しますが、配列に返されたシーケンス オブジェクトをキャストできません。
  • reduce 計算にアキュムレータ引数を使用しながら、コレクションの各要素に関数を適用します。 最初の要素は 2 個、パスに関数を適用することにより、この関数の先頭 3 番目の要素とともに関数の結果など。 最後に、最終結果を返します。
  • reduceBack 計算にアキュムレータ引数を使用しながら、コレクションの各要素に関数を適用します。 f 入力関数がで、要素が i0…場合は、を計算 i0 f (…内部 f (1) )。
  • remove マップのドメインから要素を削除します。 例外は、要素が存在しない場合
  • replicate すべての要素を指定された値に設定して、指定の長さのリストを作成します。
  • rev 要素の順序を反転した新しいリストを返します。
  • scan 計算にアキュムレータ引数を使用しながら、コレクションの各要素に関数を適用します。 この操作は、2 番目の引数とリストの最初の要素に関数を適用します。 操作は 2 番目の要素とともに関数にこの結果などを渡します。 最後に、操作には、中間結果と最終結果のリストを返します。
  • scanBack foldBack 操作は、中間結果と最終結果似ています。
  • singleton 1 項目だけを格納するシーケンスを返します。
  • Set ある値の配列の要素を設定します。
  • skip 基になるシーケンスの N 個の要素をスキップし、シーケンスの残りの要素を格納するシーケンスを返します。
  • skipWhile 指定された述語が true を返し、シーケンスの残りの要素を格納するとき、反復処理されると、基になるシーケンスの要素をバイパス シーケンスを返します。
  • sort 要素の値を使用してコレクションを並べ替えます。 要素は [比較]を使用して比較されます。
  • sortBy 指定されたプロジェクションを提供するキーを使用して、指定したリストを並べ替えます。 キーは [比較]を使用して比較されます。
  • softInPlace これを変更し、指定された比較関数を使用して配列の要素を並べ替えます。 要素は [比較]を使用して比較されます。
  • sortInPlaceBy これを変更し、キーに指定されたプロジェクションを使用して配列の要素を並べ替えます。 要素は [比較]を使用して比較されます。
  • sortInPlaceWith 順序としてファイルを変更し、指定された比較関数を使用して配列の要素を並べ替えます。
  • sortWith 順序と新しいコレクションを返すこととして指定された比較関数を使用して、コレクションの要素を並べ替えます。
  • sub 開始インデックスと長さで指定されたサブ範囲を含む配列を作成します。
  • sum コレクションの要素の合計を返します。
  • sumBy コレクションの各要素に関数を適用することで生成された結果の合計を返します。
  • tail 最初の要素を除いたリストを返します。
  • take 指定された数までシーケンスの要素を返します。
  • takeWhile 指定した述語がを返す true 説明し、これ以上の要素を返す間、反復処理されると、基になるシーケンスの要素がシーケンスを返します。
  • toArray 指定されたコレクションから配列を作成します。
  • toList 指定されたコレクションからリストを作成します。
  • toSeq 指定されたコレクションからシーケンスを作成します。
  • truncate 列挙と N 要素よりも返されないシーケンスを返します。
  • tryFind 指定した述語を満たす要素を検索します。
  • tryFindIndex そのような要素が存在しない場合、指定された述語を満たすだけ、一致する要素のインデックスを返す最初の要素の検索、または None。
  • tryFindKey 指定した述語を満たすコレクション内の最初のマッピングのキーを返します。そのような要素が存在しない場合は、None を返します。
  • tryPick 関数は値の Some を返す最初の結果を返す一連の要素に指定された関数を適用します。 そのような要素が存在しない場合、操作は Noneを返します。
  • unfold 指定された計算を生成する要素を含むシーケンスを返します。
  • Union 2 つのセットの和集合を計算します。
  • unionMany セットのシーケンスの和集合を計算します。
  • unzip ペアのリストを 2 つのリストに分割します。
  • unzip3 3 要素の組のリストを 3 つのリストに分割します。
  • windowed 入力シーケンスから取得されたコンテナー要素のスライド式ウィンドウを生成するシーケンスを返します。 各ウィンドウは、新しい配列として返されます。
  • zip ペアのリストに 2 個のコレクションを結合します。 2 つのリストは同じ長さである必要があります。
  • zip3 3 要素の組のリストに二つのコレクションを結合します。 各リストは同じ長さである必要があります。