Это совершенно правильно и весьма полезно. В качестве примера рассмотрим это правило, взятое из классической (и теперь бесплатной!) Книги PNLA , в которой используются два аргумента для захвата перегиба и «значение» (логическая форма LF
) переходного глагола tv
:
tv(nonfinite, LF) --> [TV], {tv(TV, _, _, _, _, LF)}.
tv(finite, LF) --> [TV], {tv(_, TV, _, _, _, LF)}.
tv(finite, LF) --> [TV], {tv(_, _, TV, _, _, LF)}.
tv(past_participle, LF) --> [TV], {tv(_, _, _, TV, _, LF)}.
tv(pres_participle, LF) --> [TV], {tv(_, _, _, _, TV, LF)}.
Глагол может быть определен как
tv( write, writes, wrote, written, writing, X^Y^ `writes(X,Y) ).
( См. Полный пример. )