; ; Random limericks ; by David Johnson-Davies and Hannah Cole ; (defun choose (list) (nth (random (length list)) list)) (defun limerick () (let ((adjective1 (choose '("sordid" "graceful" "wily" "vicious" "sparkling" "really" "spiteful"))) (adjective2 (choose '("green" "young" "vile" "bland" "old" "wild" "grey"))) (person-who (choose '(("duchess" "she") ("grocer" "he") ("glutton" "he") ("flautist" "she") ("laundress" "she") ("sailor" "he") ("gardener" "she")))) (place-result (choose '(("Wembley" "and felt trembly") ("Spain" "on a train") ("Chad" "and went mad") ("Speke" "twice a week") ("Kings" "and grew wings") ("France" "in a trance") ("York" "with some pork")))) (verb (choose '("wanted" "followed" "counted" "demolished" "collected" "swallowed" "painted"))) (object (choose '("some stamps" "a stoat" "a nude" "some cakes" "a frog" "some mould" "a duck"))) (adverb-object (choose '(("quick" "a brick") ("slow" "some dough") ("few" "a screw") ("hard" "some lard") ("late" "a plate") ("long" "King Kong") ("many" "a penny")))) (verb2 (choose '("noticed" "followed" "asked for" "looked for" "wanted" "longed for" "needed")))) (format t "A ~a ~a ~a from ~a,~%" adjective1 adjective2 (first person-who) (first place-result)) (format t "Once ~a ~a ~a.~%" verb object (second place-result)) (format t "~a ~a so ~a~%" (second person-who) verb (first adverb-object)) (format t "That ~a ~a ~a,~%" (second person-who) verb2 (second adverb-object)) (format t "That ~a ~a ~a of ~a.~%" adjective1 adjective2 (first person-who) (first place-result)) nil))