Używam wektora map, które zdefiniowano jako referecję.clojure - usunięcie elementu z wektora odniesienia
Chcę usunąć pojedynczą mapę z wektora i wiem, że w celu usunięcia elementu z wektora należy użyć subvec
.
Mój problem polega na tym, że nie mogłem znaleźć sposobu na wdrożenie subvec
w stosunku do wektora odniesienia. Próbowałem zrobić to, używając: (dosync (commute v assoc 0 (vec (concat (subvec @v 0 1) (subvec @v 2 5)))))
, tak aby seq zwrócony z funkcji vec
będzie zlokalizowany na indeksie 0 wektora, ale nie zadziałał.
Czy ktoś ma pomysł, jak to wdrożyć?
dzięki
Używanie wektora do przechowywania czegoś, co chcesz usunąć w trybie dostępu losowego, jest zwykle złym wyborem - nie mogą tego zrobić wydajnie, a zatem funkcje językowe do robienia tego z nimi są niezręczne. Zastanów się, używając zamiast tego listy/seq. – amalloy