(def base 100)
(def source (ref (* base base)))
(def target (ref 0))
(defn move [foo]
(dotimes [x base]
(dosync (ref-set source (- @source 1))
(ref-set target (+ @target 1))) ))
(def movers (for [x (range 1 base)] (agent nil)))
(dorun (map #(send-off % move) movers))
Nebenwirkung einbauen:
(def c (atom 0)) ... (swap! c inc) ... (printf c)