3
我正在努力做我的功课。我有以下收藏。孩子 - 父母关系
(defparameter *tuples*
'((has bird feathers)
(color budgie yellow)
(eats budgie seed)
(color tweetie green)
(isa tweetie budgie)
(isa budgie bird)
))
我需要使它通过以下测试的方式工作。
(inherit tuples 'tweetie 'heart-rate) => nil
(inherit tuples 'tweetie 'color) => green
(inherit tuples 'tweetie 'eats) => seeds
(inherit tuples 'tweetie 'has) => feathers
我已成功地做工作,如果我指定的Tweetie例如值:返回种子
(forevery (' ((isa ?b budgie) (eats budgie ?x)) *tuples*)
(format t "~&~a" #?x) #?x)
。
但
(forevery (' ((isa ?b budgie) (eats tweetie ?x)) *tuples*)
(format t "~&~a" #?x) #?x)
返回nil,所以我怎么可以让它搭配它指定的父值 所以测试时(eats tweetie ?x)
应该返回种子和(has tweetie ?x)
应该返回羽毛。
谢谢你们。
您的集合是给定的,还是允许您使用不同的数据结构?反映关系结构的不同数据结构可能会让你的生活变得更轻松... – RonaldBarzell