(defun adj* () (if (= (random 2) 0) nil (append (adj) (adj*)))) (defun pp* () (if (random-elt '(t nil)) (append (pp) (pp*)) nil)) (defun noun-phrase () (append (article) (adj*) (noun) (pp*))) (defun pp () (append (prep) (noun-phrase))) (defun adj () (one-of '(big little blue green long))) (defun prep () (one-of '(to in by with on)))