Я заметил, что у PersistentVector из FSharpX нет метода удаления по индексу.
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 в качестве резервного хранилища для пользовательского интерфейса. Я экспериментирую с https://github.com/JaggerJo/Avalonia.FuncUI, который является портом Эльмы для Авалонии. Я получил довольно далеко, а затем хотел добавить кнопку удаления в строке, и я не могу найти способ обновить свой резервный магазин. : (
Пример кода для пользовательского интерфейса:
https://gist.github.com/bradphelan/77f3fcb8e660783790c5610290cd8d97