Hatena::Groupcadr

bulbのLisp日記 RSSフィード

2008-01-08

[][][]2.1 21:29 2.1 - bulbのLisp日記 を含むブックマーク はてなブックマーク - 2.1 - bulbのLisp日記

generate を cond を使用して書きます。

;; Exercise 2.1

(defun generate (phrase)
  (let ((choices nil))
    (cond ((listp phrase)
	   (mappend #'generate phrase))
	  ((setf choices (rewrites phrase))
	   (generate (random-elt choices)))
	  (t
	   (list phrase)))))
#|
CL-USER> (generate 'sentence)
(THE WOMAN HIT A TABLE)
CL-USER> (generate 'sentence)
(THE TABLE LIKED A MAN)
|#