primo luogo, assumere ogni sequenze specifiche strutture avrebbero diversi modi per rimuovere un elemento: Vettori potrebbe essere per indice, Elenco potrebbe essere rimuovere prima o l'ultima, Set dovrebbe essere passando dell'articolo reale da rimuovere , ecc.Come posso rimuovere un elemento da una sequenza in Clojure?
In secondo luogo, presumo che ci siano alcuni metodi per la rimozione che sono indipendenti dalla struttura; funzionano sull'interfaccia seq.
Dal momento che le sequenze sono immutabili in Clojure, sospetto che ciò che stai effettivamente facendo sia una copia economica dell'originale, solo senza l'articolo originale. Ciò significa che la rimozione delle liste potrebbe essere utilizzata, ma sospetto che sarebbe inutilmente prolisso.
Fornire alcuni esempi idiomatici dei diversi modi per rimuovere elementi dalle sequenze Clojure.
Grazie Brian, questo è quello che stavo cercando. La tua citazione di subvec non sembra corrispondere alla documentazione: "Restituisce un vettore persistente degli elementi nel vettore dall'inizio (incluso) alla fine (esclusivo). Se non viene fornita la fine, il valore predefinito è (vettore di conteggio)." Intendevi dire che potresti concatenare due chiamate subvec per escludere l'elemento "rimosso"? – rcampbell
Sì, questo è quello che intendevo. Con il senno di poi potrebbe essere troppo maldestro anche solo prendere in considerazione. Lo rimuoverò dal post. –
['subvec'] (http://clojuredocs.org/clojure_core/clojure.core/subvec) è degno di nota (per i vettori), perché funziona in tempo O (1). –