Predicato Prolog deduci

Messaggioda #Fede » 06/02/2019, 18:21

Ciao ragazzi,

qualcuno potrebbe aiutarmi con questo esercizio in Prolog?

Scrivere un predicato Prolog deduci(R,B,B1) che riceva in input una lista di regole R e una lista di fatti B, e che produca in output una nuova lista di fatti B1 ottenuta da B applicando tutte le regole di R fino al raggiungimento di un punto fisso. Ogni regola R viene espressa mediante un simbolo di funzione regola(Cs,D) in cui il primo argomento Cs è una lista di condizioni che, se verificate congiuntamente, rendono vero il secondo argomento D. Ad esempio:

? - deduci( [regola ([p(X), q(X)] , r(X) ) )] , [p(a), p(b), q(a)], B1).

X = a, B1 = [r(a), p(a), p(b), q(a)]

? - deduci( [regola ([p(X), q(X)] , r(X) ) )] , regola([r(Y)], q(b)), [p(a), p(b), q(a)], B1).

X = Y, Y=a, B1 = [q(b), r(a), p(a), p(b), q(a)]

Grazie mille!
#Fede
Starting Member
Starting Member
 
Messaggio: 10 di 11
Iscritto il: 20/04/2017, 15:33

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti