問題タブ [immutable-collections]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - BCL 不変コレクション: 等価性は非対称です
不変のデータ構造は第一級の値であるため、他の値と同様に、それらを等値または順序で比較できます。IEqualityComparer<T>
しかし、すべての不変コレクションは/IComparer<T>
インスタンスによってパラメーター化できるため、BCL 不変コレクション プレビューでは事態が複雑になりました。等式関係が非対称になるため、異なる比較子を持つ不変コレクションを比較することは許可されないようです (比較子自体には等式が定義されていないため)。
この動作は何らかの方法で修正されますか?
c# - System.Collections.Immutable.IImmutableList はありますか.Microsoft の不変コレクションのプレビューからの追加には、位置要件がありますか?
O(1) スタック操作と O(log n) リスト操作を提供する不変コレクションを実装しています。その結果、前面に要素を追加する方が、背面に要素を追加するよりも高速です。System.Collections.Immutable.IImmutableList<T>.Add()
( https://nuget.org/packages/Microsoft.Bcl.Immutable、http://blogs.msdn.com/b/bclteam/archive/2012/12/18/preview-of-immutable-の有効な実装はできますか? collections-released-on-nuget.aspx ) コレクションの後ろではなく前に要素を追加しますか?
インターフェイスの定義方法は次のとおりです。
c# - ImmutableArray の違いおよび ImmutableList
ImmutableArray<T>
との違いは何ですか?またImmutableList<T>
、それぞれをどこで使用するのが最適ですか?
scala - 不変の HashSet への追加
申し訳ありませんが、私は最近、"Programming in Scala", 2nd Edition on page 685 の例を見て、私には奇妙に思えました:
不変コレクションに何かを追加するにはどうすればよいですか? REPL を試してみたところ、問題なく動作しました。
奇妙な事実は、 += 演算子がimmutable.HashSet api ページで定義されていないことです。何が起こっているのか理解できる人はいますか?
ありがとう。
c# - ReadOnlyCollection ではなく ImmutableList を使用する理由
.NET 4.5 には新しい名前空間System.Collections.Immutableがあります
このパッケージは、不変コレクションとも呼ばれる、スレッド セーフで内容が決して変更されないことが保証されているコレクションを提供します。
よくわかりません。スレッド セーフの問題は、 ReadOnlyCollectionクラスによって既に解決されているのではないでしょうか。代わりにImmutableListを使用する理由
IReadOnlyListインターフェイスもあると思います。他のスレッドが別のインターフェイスでオブジェクトを編集する可能性があるため、これはスレッド セーフの問題を暗黙のうちに解決するわけではありません。