在规则中循环以在CLIPS中创建事实

时间:2016-09-19 08:53:40

标签: loops rule clips

我有以下事实:

(deffacts Cars
    (color red)
    (color green)
    (color yellow)
    (doors three)
    (doors five)
)

是否有可能通过事实创建循环来创建新的事实,如(车红三),(车红五),(车绿三),(...),所有可能的颜色组合和门?

由于

1 个答案:

答案 0 :(得分:3)

CLIPS> 
(deffacts Cars
   (color red)
   (color green)
   (color yellow)
   (doors three)
   (doors five))
CLIPS>    
(defrule combinations
   (color ?color)
   (doors ?doors)
   =>
   (assert (car ?color ?doors)))
CLIPS> (reset)
CLIPS> (run)
CLIPS> (facts)
f-0     (initial-fact)
f-1     (color red)
f-2     (color green)
f-3     (color yellow)
f-4     (doors three)
f-5     (doors five)
f-6     (car red five)
f-7     (car green five)
f-8     (car yellow five)
f-9     (car red three)
f-10    (car green three)
f-11    (car yellow three)
For a total of 12 facts.
CLIPS>