Seq
いつ選択するかについてのあなたの要約はかなり良いと思います。追加のポイントを次に示します。
- 関数を記述するときにデフォルトで使用
Seq
します。これは、関数が任意の .NET コレクションで動作するためです。
- または
Seq
のような高度な機能が必要な場合に使用しますSeq.windowed
Seq.pairwise
Seq
デフォルトで選択するのが最良の選択肢だと思いますが、いつ別のタイプを選択するのでしょうか?
パターンList
を使用した再帰的な処理が必要な場合に使用します
(標準ライブラリでは利用できない機能を実装するため)。head::tail
List
ステップバイステップで作成できる単純な不変データ構造が必要な場合に使用します
(たとえば、あるスレッドでリストを処理する必要がある場合 - 統計を表示する必要がある場合) を受け取り、同時に別のスレッドでリストの作成を続けるより多くの値、つまりネットワーク サービスから)
短いリストを使用するList
場合に使用 - リストは、値がしばしば空のリストを表す場合に使用するのに最適なデータ構造です。そのシナリオでは非常に効率的です。
Array
値型の大規模なコレクションが必要な場合に使用します
(配列はデータをフラット メモリ ブロックに格納するため、この場合はメモリ効率が高くなります)。
Array
ランダム アクセスまたはより高いパフォーマンス (およびキャッシュの局所性) が必要な場合に使用します。