0
주문 대기열을 유지하고 FIFO 처리를 사용하여 주문을 "요리"하려고합니다. 원자를 사용하여 대기열을 업데이트 할 수 있지만 마지막 두 줄은 작동하지 않습니다. 내가 필요한 것은 첫 번째 요소를 제거하고 나머지 목록으로 원자 (대기열)를 업데이트하는 것입니다. 씨에Clojure 업데이트 Atom PersistentQueue
감사합니다, R.
(ns example.atomqueue
(:use clojure.pprint))
(def orders-queue (atom clojure.lang.PersistentQueue/EMPTY))
(defrecord Order [fplate splate])
(defn add-order [order]
(swap! orders-queue conj order))
(add-order (->Order "Soup" "Fish&Chips"))
(pprint orders-queue)
(add-order (->Order "Salad" "Hamburger"))
(pprint orders-queue)
(add-order (->Order "Rice" "Steak"))
(pprint orders-queue)
;;NOT SURE IF CORRECT
(defn cook-order [orders]
(swap! orders-queue (pop orders)))
;;EXCEPTION
(cook-order orders-queue)
당신이 필요로하는 것은 ('아마 defn이 요리를 주문 [] (스왑입니다 주문 -queue pop))' – leetwinski
예, 당신은 라이트입니다. 고맙습니다! – razvan