(in-package :cs325-user) (defparameter *facts* '((bird isa animal) (pet isa animal) (canary isa bird) (penguin isa bird) (animal can-fly no) (animal has-owner no) (pet has-owner yes) (bird can-fly yes) (penguin can-fly no) (tweety isa pet) (tweety isa canary) (chilly isa penguin))) (defun foo (x) (cons x (cons (bar x) (baz x)))) (defun bar (x) (mapcan (lambda (fact) (and (eql (car fact) x) (eql (cadr fact) 'isa) (list (caddr fact)))) *facts*)) (defun baz (x) (mapcan (lambda (fact) (and (eql (car fact) x) (not (eql (cadr fact) 'isa)) (list (cdr fact)))) *facts*))