f#中是否有一个具有“append”方法的集合类型,这样我就可以向该集合中添加一个元素:
(伪代码)
let list = [1,2,3,4]
list.append( 5 )
print list
结果:1,2,3,4,5
基本上我需要一个可以在运行时增长的集合,我不能假设它的大小。 我找不到用f#
中的列表或数组做这个的方法更新:我不想每次多次发生新的列表/数组。我想附加已经存在的集合。我需要为集合使用相同的名称/符号。 F#不允许我重新声明或重写一个集合,所以这不起作用:
let A = [1,2,3]
let A = A.append 4 or A <- Array.appen A 4
答案 0 :(得分:5)
您可以使用ResizeArray
:
let list = ResizeArray([1;2;3;4])
list.Add( 5 )
答案 1 :(得分:0)
在我看来,你想要实现的功能与功能方法没什么关系。我不会犹豫是否使用标准.NET列表。
关于您的更新: 由于列表是不可变的,因此并不是每次将元素添加到列表时都会创建新列表。这比复制整个现有列表要聪明得多。