我需要的东西是简单的队列,我可以在其中放置任务,并从工作人员那里一个接一个地检索它们(不维护任务的顺序)。
我写了这样的东西:
;; Definition
(def q (ref []))
;; Put
(defn put-in-queue [i]
(dosync (alter q conj i)))
;; Get
(defn get-from-queue []
(dosync
(let [v (peek q)]
(alter q pop)
v)))
是正确的解决方案吗?(也许这个任务也有更好的解决方案)