Annotated using CiaoPP: :- mode(reverse/2, [+,-]). :- mode(app/3, [+,+,-]). :- measure(reverse/2, [length,length]). :- measure(app/3, [length,length,length]). %complexity: reverse(i,o). % mode: app[i,i,o] app([X|Xs],Ys,[X|Zs]) :- app(Xs,Ys,Zs). app([],Ys,Ys). % mode: reverse[i,o] reverse([X|Xs],Ys) :- reverse(Xs,Zs), app(Zs,[X],Ys). reverse([],[]). Caslog 1.0, April 1992. * Mutually exclusive classes of clauses for predicate app/3 : [[1],[2]] * Size functions for predicate app/3 : [$(1),$(2),$(2)+ $(1)] * Relation functions for predicate app/3 : [inf] * Solution functions for predicate app/3 : [1] * Time functions for predicate app/3 : [$(1)+1] * Mutually exclusive classes of clauses for predicate reverse/2 : [[1],[2]] * Size functions for predicate reverse/2 : [$(1),$(1)] * Relation functions for predicate reverse/2 : [inf] * Solution functions for predicate reverse/2 : [1] * Time functions for predicate reverse/2 : [0.5*exp($(1),2)+1.5* $(1)+1] {Exexution Time: 0.0 msec} {End of Caslog execution.}