(setq data '((arisa f 120 7 higashi) (hiroshi m 145 12 minami) (yuki f 140 11 higashi) (masaki m 100 5 - ) (toshi m 110 6 nishi) (misa f 120 8 minami) ))たとえば、男子のデータリストを返す関数は、
> (remove-if-not (is 'm) data :key #'cadr) ((HIROSHI M 145 12 MINAMI) (MASAKI M 100 5 -) (TOSHI M 110 6 NISHI))となることから、
(defun find-male (d) (remove-if-not (is 'm) d :key #'cadr))とすればよい。 次に、ある小学校の子供のリストデータを返す関数は、引数として、その小学校名 をとるようにするには、
(defun find-students-of (school d) (remove-if-not (is school) d :key #'(lambda (x) (elt x 4))))身長が120cm以上の子供全体のデータリストを返す関数は、
>(defun find-taller-than-120 (d) (remove-if-not #'(lambda (x) (> x 120)) d :key #'(lambda (x) (elt x 2)))) find-taller-than-120 > (find-taller-than-120 data) ((HIROSHI M 145 12 MINAMI) (YUKI F 140 11 HIGASHI))ある年齢以上の男の子を探す関数は、
> (defun find-male-older-than (d age) (remove-if-not (is 'm) (remove-if-not #'(lambda (x) (> x age)) d :key #'(lambda (x) (elt x 3))) :key #'(lambda (x) (elt x 1)))) find-male-older-than > (find-male-older-than data 10) ((HIROSHI M 145 12 MINAMI))という具合に定義できる。