(deftemplate masina (slot marca) (slot model) (slot an) (slot motor) (multislot culori) (slot pret) ) (deffacts colectie (masina (marca renault) (model picasso) (pret 15000) (an 2003) (motor 1900) (culori bleumarin verde)) (masina (marca renault) (model megane) (an 2005) (pret 16000) (motor 1800)) (masina (marca hyundai) (model jazz) (an 2006) (pret 18000) (motor 1600) (culori gri rosu alb)) (masina (marca dacia) (model logan) (an 2006) (motor 1900) (pret 10000) (culori bleumarin mov)) (masina (marca dacia) (model solenza) (an 2003) (motor 1700) (pret 8000) (culori bleumarin rosu alb)) (masina (marca ford) (model puma) (an 2003) (motor 1900) (pret 18000) (culori verde galben bleumarin rosu)) ) (deffacts date (selectie) ) ; dintre masinile de aceeasi culoare da-mi-le pe cele mai ieftine (defrule schimb-o-masina-din-selectie ?sel <- (selectie $?inc ?c ? ? ?p $?sf) (masina (marca ?ma1) (model ?mo1) (pret ?p1&:(< ?p1 ?p)) (culori $?c1&:(member$ ?c $?c1))) => (retract ?sel) (assert (selectie $?inc ?c ?ma1 ?mo1 ?p1 $?sf)) ) (defrule bag-o-noua-culoare-in-selectie (masina (marca ?ma1) (model ?mo1) (pret ?p1) (culori $? ?c1 $?)) (not (selectie $? ?c1 $?)) ?s <- (selectie $?init) => (retract ?s) (assert (selectie $?init ?c1 ?ma1 ?mo1 ?p1)) )