(Deadline: -)
Daca nu sunteti logati exercitiile nu se mai afiseaza.
Reguli DCG
Regulile DCG (Definite clause grammar) pentru Sicstus Prolog sunt o forma de scriere prescurtata a regulilor prolog. Regulile DCG se folosesc in special in prelucrarea limbajului natural. Pentru a defini reguli dcg, vom folosi operatorul special -->.
O regula DCG de forma:
elem --> subelem1, subelem2.
e de fapt o prescurtare pentru
elem(A,C):-subelem1(A,B),subelem2(B,C).
Iar o regula de forma
elem --> [frunza]. % cu sensul ca nu se mai descompune.
e de fapt o prescurtare pentru
elem(A,Codita):-A=[frunza|Codita].
Un exemplu:
prop_simpla --> subst, verb.
subst --> [catelul].
subst --> [pisica].
verb --> [latra].
verb --> [miauna].
Cu outputul:
subst --> [catelul].
subst --> [pisica].
verb --> [latra].
verb --> [miauna].
| ?- prop_simpla(L,[]).
L = [catelul,latra] ? ;
L = [catelul,miauna] ? ;
L = [pisica,latra] ? ;
L = [pisica,miauna] ? ;
no
| ?-
L = [catelul,latra] ? ;
L = [catelul,miauna] ? ;
L = [pisica,latra] ? ;
L = [pisica,miauna] ? ;
no
| ?-