Prolog gramatyka rekurencyjna

w tej chwili mam problem z zapętleniem z powrotem donoun_phrase znp2. Zastanawiałem się, czy ktoś może mi pomóc wrócić donoun_phrase. Oto kod:

noun_phrase([X|T],(det(X), NP2),Rem):-
   det(X),
   np2(T,NP2,Rem).

np2([H|T],np2(adj(H),Rest),NP) :-
   adj(H),
   np2(T,Rest,Rem),
   noun_phrase(NP,Rem,_).

Chcę zapętlać odnp2 wrócić donoun_phrase. Myślę, że kodnp2 jest zły, ponieważ właśnie zhakowałem go razem.

questionAnswers(1)

yourAnswerToTheQuestion