Revision: 16729
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 13, 2009 14:36 by narkisr
Initial Code
(defn make-counter [init-val] (let [c (atom init-val)] {:next #(swap! c inc) :reset #(reset! c init-val)})) (def c (make-counter 10)) -> #'user/c ((c :next)) -> 11 ((c :next)) -> 12 ((c :reset)) -> 10
Initial URL
http://blog.thinkrelevance.com/2009/8/12/rifle-oriented-programming-with-clojure-2
Initial Description
Using closures in order to encapsulate access to data (in this case the counter is thread safe atom).
Initial Title
Encapsulation in Clojure
Initial Tags
Initial Language
Lisp