एक पर्सिस्टेंट्यूयू को एक रेफरी में दिया गया है:एक रेफरी में एक PersistentQueue पॉप करने के लिए बेवकूफ तरीका क्या है?
(def pq (ref clojure.lang.PersistentQueue/EMPTY))
कतार को पॉप करने और परिणाम प्राप्त करने का बेवकूफ तरीका क्या है?
आपकी आलोचना के लिए मेरा सबसे अच्छा प्रयास:
(defn qpop [queue-ref]
(dosync
(let [item (peek @queue-ref)]
(alter queue-ref pop)
item))
बदले में कतार का इन-ट्रांजैक्शन मान देता है जो पहले से ही पॉप किया गया है, इसलिए आप केवल अपने आप में बदलाव नहीं कर सकते हैं।
कतार में जोड़ने के लिए Idiomatic होगा: (dosync (pq conj new-item बदलें) –