如何使用FSharpx的PersistentVector从索引N中删除项目?



我注意到FSharpX的PersistentVector在索引方法上没有remove at。

https://fsprojects.github.io/FSharpx.Collections/reference/fsharpx-collections-persistentvector-1.html

它能够在第 n 个位置修改项目,但无法删除它。这似乎是一个奇怪的遗漏。如果不可能,那么有人可以建议具有此功能的不同不可变持久集合。

我目前用于从向量中删除id处的项目的代码是蛮力

state 
|> Seq.indexed 
|> Seq.where ( fun (_id,_)->id<>_id) 
|> Seq.map (fun (_,p)->p) 
|> PersistentVector.ofSeq

请注意,我正在尝试将 PersistentVector 用作 UI 的后备存储。我正在试验 https://github.com/JaggerJo/Avalonia.FuncUI 这是阿瓦洛尼亚的埃尔米什港口。我走了很远,然后想在一行上添加一个删除按钮,但我找不到更新我的后备存储的方法。:(

UI 的示例代码是

https://gist.github.com/bradphelan/77f3fcb8e660783790c5610290cd8d97

我不认为FSharpx.Collections中的任何集合都支持删除,除了PersistentHashMap,它有一个删除方法。 我确定FSharpx.Experimental.Collections中有一些集合也支持删除/删除。这些可能对您没有用。

您可能想查看此新项目以了解您正在尝试的内容 https://github.com/fsprojects/FSharp.Data.Adaptive

相关内容

  • 没有找到相关文章

最新更新