Gray code

anarchy golf - Gray code

(let ((n (read)) (x 3) (l '(0 1)))
  (dotimes (i (1- n))
    (setq l (append l (mapcar #'(lambda (a) (logxor x a)) l))
          x (* x 2)))
  (dolist (c l)
    (format t "~V,'0B~%" n c)))

といった方法も思いついたんだけど短く書けない。
Cが異様に盛り上がってるなぁ…