Dato un PersistentQueue in un ref:Qual è il modo idiomatico di inserire un PersistentQueue in un riferimento?
(def pq (ref clojure.lang.PersistentQueue/EMPTY))
Qual è il modo idiomatico per estrarre la coda e ottenere il risultato?
mio miglior tentativo per la vostra critica:
(defn qpop [queue-ref]
(dosync
(let [item (peek @queue-ref)]
(alter queue-ref pop)
item))
restituisce modificare il valore di transazione della coda che è spuntato già, quindi non si può solo fare l'alter da solo.
Idiomatico per l'aggiunta alla coda sarebbe: (dosync (alter pq conj new-item)) –