0
Я хочу написать правило, которое гласит следующееКЛИПЫ defrules сравнить значение двух переменных
if x > y => assert x
где x
и y
переменные и их значения приведены как факты.
Как это сделать?
Я хочу написать правило, которое гласит следующееКЛИПЫ defrules сравнить значение двух переменных
if x > y => assert x
где x
и y
переменные и их значения приведены как факты.
Как это сделать?
Если x уже существует как факт, то утверждение его снова из действий правила было бы ненужным, но если вы хотите утверждать факт, указывающий, что x больше y, вы можете сделать это следующим образом:
CLIPS>
(defrule greater-than
(x ?x)
(y ?y)
(test (> ?x ?y))
=>
(assert (x-is-greater-than-y)))
CLIPS> (assert (x 4))
<Fact-1>
CLIPS> (assert (y 1))
<Fact-2>
CLIPS> (agenda)
0 greater-than: f-1,f-2
For a total of 1 activation.
CLIPS> (run)
CLIPS> (facts)
f-0 (initial-fact)
f-1 (x 4)
f-2 (y 1)
f-3 (x-is-greater-than-y)
For a total of 4 facts.
CLIPS>
Спасибо! Это работает для меня. –