Sto utilizzando un vettore di mappe definito come riferimento.clojure: cancella un elemento da un vettore ref
Voglio eliminare una singola mappa dal vettore e so che per eliminare un elemento da un vettore dovrei usare subvec
.
il mio problema è che non sono riuscito a trovare un modo per implementare il subvec
su un vettore di riferimento. ho provato a farlo utilizzando: (dosync (commute v assoc 0 (vec (concat (subvec @v 0 1) (subvec @v 2 5)))))
, in modo che il seq restituito dalla funzione vec
si trova sull'indice 0 del vettore ma non ha funzionato.
qualcuno ha un'idea di come implementarlo?
grazie
L'utilizzo di un vettore per archiviare qualcosa che si desidera eliminare in un modo ad accesso casuale è di solito la scelta sbagliata - non possono farlo in modo efficiente e, di conseguenza, le funzionalità del linguaggio per fare ciò con loro sono scomode. Considera solo l'uso di una lista/seq, invece. – amalloy