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