F# 在F中向集合添加元素的繁琐语法#

F# 在F中向集合添加元素的繁琐语法#,f#,F#,??没有更简洁的语法了?谢谢。F#映射是不可变的,因此Add返回一个带有附加元素的新Map。因此,如果要将其存储在类的属性中,则必须将新的Map分配给该属性。没有快捷语法,因为可变项并不是真正惯用的F# 对于此应用程序,您可能会发现最好打开System.Collections.Generic并使用Dictionary,它是可变的,并且可能更适合携带内部对象。F#映射是不可变的,因此Add返回一个新的映射以及附加元素。因此,如果要将其存储在类的属性中,则必须将新的Map分配给该属性。没有快捷语法,

??没有更简洁的语法了?谢谢。

F#映射是不可变的,因此
Add
返回一个带有附加元素的新
Map
。因此,如果要将其存储在类的属性中,则必须将新的
Map
分配给该属性。没有快捷语法,因为可变项并不是真正惯用的F#

对于此应用程序,您可能会发现最好打开
System.Collections.Generic
并使用
Dictionary
,它是可变的,并且可能更适合携带内部对象。

F#映射是不可变的,因此
Add
返回一个新的
映射以及附加元素。因此,如果要将其存储在类的属性中,则必须将新的
Map
分配给该属性。没有快捷语法,因为可变项并不是真正惯用的F#


对于此应用程序,您可能会发现最好打开
System.Collections.Generic
并使用
字典
,它是可变的,可能更适合携带内部对象。

您的问题是使用不可变的结构(
Map
)当你显然想对它进行变异时-为什么不使用
System.Collection.Generic.Dictionary
来代替-你不需要一个setter然后使用eiter。。。当然,这两种方法都不是惯用的F#,因为你通常不希望首先发生突变。在这种情况下,
myDict.Add(5,“five”)
myMap更具性能。我认为你不会注意到执行速度的差异——只有在添加了大量元素的情况下——但这里的问题是什么?这是一种语法咆哮吗?关于性能的问题?代码回顾?我只是想知道如何做得更好,但现在我想在不可变集合和可变集合之间进行选择是一个独立而困难的话题。您的问题是使用不可变结构(
Map
)当你显然想对它进行变异时-为什么不使用
System.Collection.Generic.Dictionary
来代替-你不需要一个setter然后使用eiter。。。当然,这两种方法都不是惯用的F#,因为你通常不希望首先发生突变。在这种情况下,
myDict.Add(5,“five”)
myMap更具性能。我认为你不会注意到执行速度的差异——只有在添加了大量元素的情况下——但这里的问题是什么?这是一种语法咆哮吗?关于性能的问题?代码回顾?我只是想知道如何做得更好,但现在我想在不可变集合和可变集合之间进行选择是一个独立而困难的话题。
type myClass(property1 : Map<int, string>) =
    member val Property1 = property1 with get, set

let myObject = myClass(Map.ofList [(1, "one"); (2, "two"); (3, "three")])
myObject.Property1 <- myObject.Property1.Add (5, "five")
myObject.Property1.Add (5, "five")