Estoy usando un vector de mapas que se define como referencia.clojure - eliminar un elemento de un vector de referencia
quiero eliminar un solo mapa del vector y sé que para eliminar un elemento de un vector debería usar subvec
.
mi problema es que no pude encontrar una manera de implementar el subvec
sobre un vector de referencia. intenté hacerlo usando: (dosync (commute v assoc 0 (vec (concat (subvec @v 0 1) (subvec @v 2 5)))))
, de modo que el seq devuelto de la función vec
estará ubicado en el índice 0 del vector, pero no funcionó.
¿Alguien tiene una idea de cómo implementar esto?
gracias
Usar un vector para almacenar algo que querrás eliminar de forma aleatoria suele ser la opción incorrecta; no pueden hacerlo de manera eficiente y, como resultado, las características del idioma para hacer esto con ellos son incómodas. Considere el uso de una lista/seq en su lugar. – amalloy