> Here's a 136-character version (after unnecessary spaces are removed):
>
> (define (life s)
>  (let* ((a bitwise-and)
>         (s (bitwise-ior (* s #x111000101000111/10000000) s)))
>    (a (* (a (- -1 s) (* s 4)) 3/32)
>       (/ (- (expt 8 48) 1) 15))))
>
> -- Jeremiah Willcock

That doesn't work! The glider test breaks after a few generations.

But your concept is better than mine. Here's 132 chars, note the
number shortening trick:

(define(j s)
  (let c([n(expt 8 48)])
    (+(if(memv(modulo(floor(/(* s #e#x11100018.1000111)n))16)'(3 10 11))n 0)
      (if(= n 1)0(c(/ n 16))))))

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to