7
我正在尋找一個持續的順序數據結構,允許有效的隨機插入和刪除。我發現下面的實現:Clojure手指樹和flexvec
由於當時沒有clojure.data.finger樹太多的活動在過去的兩年裏,其他人都是相對較新的,我想知道是否有人在生產中使用其中的任何一種,以及是否有我忽略的替代品。
我正在尋找一個持續的順序數據結構,允許有效的隨機插入和刪除。我發現下面的實現:Clojure手指樹和flexvec
由於當時沒有clojure.data.finger樹太多的活動在過去的兩年裏,其他人都是相對較新的,我想知道是否有人在生產中使用其中的任何一種,以及是否有我忽略的替代品。
另一種實施方式clojure/core.rrb-vector是announced。由於它在clojure github賬戶中,它似乎將成爲事實上的實現。
clojure/core.rrb-vector只是Michal的flexvec移動到一個contrib庫。 – 2014-08-03 16:48:28
爲什麼clojure的PersistentVector不夠好?你可以在你的用例上添加細節嗎? – ordnungswidrig 2013-05-08 12:56:18
@ordnungswidrig,迴應您對我的使用案例的要求:我有一個以數組表示的文檔。爲了響應事件,文檔會在文檔中的特定偏移處插入和刪除。通常在相對較大的文檔中只會有一兩個插入或刪除操作。隨着clojure的持久性向量實現,我必須在每個事件上重新創建文檔。例如,使用手指樹,我可以沿着修改過的偏移量分割和加入文檔。 – Inshallah 2013-05-09 09:31:46
由於結構性共享這不應該帶來很大的成本。或者您需要訪問拆分部分,例如優化磁盤持久性? – ordnungswidrig 2013-05-13 11:44:31