Gebruik DCG gramatica regels om een predicaat reverse/3 te schrijven dat waar is als de laatste 2 argumenten een verschillijst zijn waarvan de inhoud het omgekeerde is can het eerste argument. De modus van het predicaat mag (+,-,-) zijn.

?- reverse([1,2,3],X,[]).
X = [3, 2, 1].

?- reverse([1,2,3],X,[a]).
X = [3, 2, 1, a].

?- reverse([1,2,3],X,Y).
X = [3, 2, 1|Y].