3.2.1 Un programma Prolog migliore
/* file: analisi_2.pl usando argomenti per passare le stringhe di input e di output si puo` costruire un analizzatore sintattico */
/* regole della grammatica */ proposizione(X,Y) :- sn(X,Z),sv(Z,Y). sn(X,Y) :- articolo(X,Z),sostantivo(Z,Y). sv(X,Y) :- verbo(X,Z),sn(Z,Y).
/* simboli non terminali */ articolo([il|Y],Y). sostantivo([gatto|Y],Y). sostantivo([topo|Y],Y). verbo([mangia|Y],Y).
/* goal di prova */ ?- proposizione([il,gatto,mangia,il,topo],[]).