Ancora sulle regole - (Prolog) Lezione 3

November 24th, 2008

Estendiamo ancora il famoso programma per la rappresentazione di un’albero familiare distinguendo gli elementi per sesso in questo modo:

female(pam).
male(tom).
male(bob).
female(liz).
female(ann).
female(pat).
male(jim).

Grazie a tali relazioni possiamo stabilire la regola mother partendo dalla seguente idea

Per ogni X ed Y.
X è madredi di Y se
X è parent di Y e
X è una donna.

Ricordiamo che una regola prolog è composta da un corpo ed una testa disposti nella forma

Testa :- Corpo

e si legge “Testa è vero solo se è vero il Corpo”. Quindi possiamo scrivere la relazione di sopra come

mother(X, Y) :-
    parent(X, Y),
    female(X).

Possiamo così definire la relazione sister tra X ed Y asserendo che X ed Y abbiano lo stesso padre Z, che X sia donna ed X e Y siano diversi tra loro:


sister(X, Y)
    parent(Z,X),
    parent(Z,Y),
    female(X),
    not X = Y.

Posted in Programmazione, Tutorial | 1 Comment »