On Mar 3, 2009, at 11:01 PM, Timothy Pratley wrote:

Just because there is always another way :P

(defn determine-new-state [x y]
 (let [alive (count (for [dx [-1 0 1] dy [-1 0 1]
                          :when (cells [(+ x dx) (+ y dy)])]
                      :alive))]
   (if (cells [x y])
     (< 2 alive 5)
     (= alive 3))))

Nice!

And for more golfing fun:

(defn calc-state []
  (dosync
   (ref-set cells
     (reduce conj {}
       (for [x (range 32) y (range 48)]
         [[x y] (determine-new-state x y)])))))

--Steve

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to