F# でリスト (およびその他のコレクション) を連結するにはどうすればよいでしょうか? 質問する

F# でリスト (およびその他のコレクション) を連結するにはどうすればよいでしょうか? 質問する

F#は連結するための慣用的な方法を提供していますか?

  • シーケンスとリストを一緒にしますか?
  • list と list を一緒にリストにしますか? (非破壊的)
  • リストとリストを一緒にリストにすると破壊的になりますか?
  • 変更可能な配列を破壊的に別の変更可能な配列にまとめることはできますか?

タプルも連結できますか?

ベストアンサー1

順序とリストを一緒にする

これには特別な関数はありません。シーケンスが最初でリストが 2 番目である場合、最初のものをリストに変換するか (そして を使用して追加時にそれをコピーするList.append)、Seq.appendまたは に続いてを使用しList.ofSeq、両方のリストをコピーするかを選択する必要があります。

したがって、独自の関数を記述するのが理にかなっています。

list と list を一緒にリストにしますか? (非破壊的)

List.appendこれを行います。

リストとリストを結合してリストにする

リストは不変なので、破壊的な追加は行われません。

変更可能な配列を破壊的に別の変更可能な配列にまとめることはできますか?

.NET では、配列のサイズを変更できないため、破壊的な方法でサイズを変更することはできません。Array.append新しい配列を作成します (結果のサイズが事前にわかっているため、他のオプションよりも高速になります)。

タプルも連結できますか?

いいえ。型システムでは、タプルを追加する関数の型を表現することはできません (タプルのサイズは静的にわかっている必要があります)。

おすすめ記事