Jump to content

Queue/Usage: Difference between revisions

(clojure impl)
Line 174:
 
<lang clojure>
(defn make-fifoqueue []
(atom []))
 
(defn push-fifoqueue [fq x]
(swap! fq conj x))
 
(defn pop-fifoqueue [fq]
(if (pos? (count @fq))
(let [x (first @fq)]
(swap! fq subvec 1)
x)))
</lang>
Line 189:
 
<lang clojure>
(defn make-fifoqueue []
(ref []))
 
(defn push-fifoqueue [fq x]
(alter fq conj x))
 
(defn pop-fifoqueue [fq]
(if (pos? (count @fq))
(let [x (first @fq)]
(alter fq subvec 1)
x)))
</lang>
The <tt>push-fifoqueue </tt> and <tt>pop-fifoqueue </tt> functions would need to be called from within a <tt>dosync</tt> transaction.
 
 
=={{header|Common Lisp}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.