On Mar 3, 2009, at 4:03 PM, Stephen C. Gilardi wrote:
(defn determine-new-state [x y] (let [count (reduce + (for [dx [-1 0 1] dy [-1 0 1]] (if (cells [(+ x dx) (+ y dy)]) 1 0)))] (or (and (cells [x y]) (> count 2) (< count 5)) (= count 3))))
I'm guessing someone can make the reduce even tighter.
Here's another shot at it: (defn determine-new-state [x y] (let [nearby [-1 0 1] neighborhood (for [dx nearby dy nearby] (cells [(+ x dx) (+ y dy)])) alive (count (filter identity neighborhood))] (if (cells [x y]) (< 2 alive 5) (= alive 3)))) --Steve
smime.p7s
Description: S/MIME cryptographic signature