(no title)
twp | 1 year ago
(defn neighbors [[x y]] #{[(dec x) (dec y)] [(dec x) y] [(dec x) (inc y)] [ x (dec y)] [ x (inc y)] [(inc x) (dec y)] [(inc x) y] [(inc x) (inc y)]})
(defn count-neighbors [world cell] (count (set/intersection (neighbors cell) world)))
(def rules #{[true 2] [true 3] [false 3]})
(defn live [world cell] (contains? rules [(contains? world cell) (count-neighbors world cell)]))
(defn evolve [world] (into #{} (filter #(live world %) (reduce set/union (map neighbors world)))))
Full source: https://github.com/twpayne/life/blob/master/clojure/src/life...
drpossum|1 year ago
Jaxan|1 year ago