(deffacts dane (lista -16 19 -3 27 -44 3 14 -15 11 8 9 -10) (zakres -12 7) ; obustronnie domkniety (ilew 0) (ilepoza 0) ) (defrule wewnatrz ?i<-(lista ?x $?reszta) (zakres ?l ?p) (and (test (<= ?l ?x)) (test (<= ?x ?p)) ) ?ii<-(ilew ?ile) => (retract ?i ?ii) (assert (lista $?reszta)) (assert (ilew (+ ?ile 1))) ) (defrule zewnatrz ?i<-(lista ?x $?reszta) (zakres ?l ?p) (or (test (< ?x ?l)) (test (< ?p ?x)) ) ?ii<-(ilepoza ?ile) => (retract ?i ?ii) (assert (lista $?reszta)) (assert (ilepoza (+ ?ile 1))) )