/ / CLIPS defrules comparam o valor de duas variáveis ​​- clipes

Os desfibramentos CLIPS comparam o valor de duas variáveis ​​- clipes

Eu quero escrever uma regra que diz o seguinte

if x > y => assert x

Onde x e y são variáveis ​​e seus valores são dados como fatos.

Como eu faço isso?

Respostas:

2 para resposta № 1

Se x já existe como um fato, então afirmando issonovamente das ações da regra seria desnecessário, mas se você quer afirmar um fato indicando que x é maior que y então você poderia fazer desta forma:

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>