(defun make-structure () (labels ((doit () (case (random 2) (0 (case (random 3) (0 (gl:scale 1 9 2)) (1 (gl:translate -2 -3 -1.5)) (2 (gl:rotate 119 997 27))) (doit structure)) (1 (case (pop structure) (0 (glut:solid-sphere 11.529d0 13 3)) (1 (glut:solid-cube 19.d0))))))) (let ((state (make-random-state *random-state*))) (lambda () (setf *random-state* state) (doit)))))