artificial intelligence - Number equality test fails in CLIPS pattern matching? -
i have following rule in clips file:
(defrule check-final (declare (salience 12)) ?scnt <- (set-count (value ?v) (class ?c)) (test (= ?v ?*total*)) => (printout t ?*total* " == " ?v crlf) ) and following strange output:
clips>(run) 14 == 9 5 == 2 how possible ????
pattern matching rule occurs whenever fact set-count asserted or modified. rule fired time afterwards, during call run. these 2 processes can separated in time. value of ?*v* can of course change during long period of time.
the key realize printed results reflect value of ?v the epoch during pattern matching happened, while ?*total* value when results printed. since ?*total* may have seen arbitrary changes since pattern matching, there's no guarantee equal ?v when rule fires.
Comments
Post a Comment