; inversarea unei liste
(deffacts siruri
(sirul 1 este Ion o iubeste pe Maria)
(sirul 2 este 1 2 3 4 5 6)
(sirul 3 este a b c d e f g)
)
(defrule pune-markeri
?f <- (sirul ?id este $?continut)
(not (sirul ?id a fost luat in considerare))
=> (retract ?f)
(assert (sirul ?id este # $?continut #)
(sirul ?id a fost luat in considerare))
)
(defrule inversare
?f <- (sirul ?id este $?ceva1 # ?x $?ceva2 ?y # $?ceva3)
=> (retract ?f)
(assert (sirul ?id este $?ceva1 ?y # $?ceva2 # ?x $?ceva3))
)
(defrule terminare
(declare (salience -10))
?f <- (sirul ?id este $?ceva1 # $?ceva2)
=> (retract ?f)
(assert (sirul ?id este $?ceva1 $?ceva2))
)
Niciun comentariu:
Trimiteți un comentariu