Clojure closures.


(defn make-counter []
  (let [counter (atom 0)]
    {:inc (fn [] (swap! counter inc)) :get (fn [] @counter)}))

(def mycount (make-counter))

((:inc mycount))

((:get mycount))

(def yourcount (make-counter))

((:inc yourcount))
((:inc yourcount))

((:get mycount))
((:get yourcount))

CSci 4651 course web site.