Annotated using CiaoPP: :- mode(append/3, [+,+,-]). :- mode(inorder/2, [+,-]). :- measure(append/3, [length,length,length]). :- measure(inorder/2, [size,length]). %complexity: inorder(i,o). inorder(nil,[]). inorder(tree(L,V,R),I) :- inorder(L,LI), inorder(R,RI), append(LI,[V|RI],I). append([],X,X). append([X|Xs],Ys,[X|Zs]) :- append(Xs,Ys,Zs). /*TWDESC inorder traversal for binary trees */ /*TWNORMS norm(treesize_nodes, "Tree sizes (nodes)", [ "Counts the term's nodes:", "|f(t1,...,tn)|", "=", "1+|t1|+...+|tn|" ], [ defsize(nil,1),defsize(tree(L,_,R),1+size(L)+size(R)) ]). */ /*TWDEMO selected_norms([treesize_nodes]). */ Caslog 1.0, April 1992. * Mutually exclusive classes of clauses for predicate append/3 : [[1],[2]] * Size functions for predicate append/3 : [$(1),$(2),$(2)+ $(1)] * Relation functions for predicate append/3 : [inf] * Solution functions for predicate append/3 : [1] * Time functions for predicate append/3 : [$(1)+1] * Mutually exclusive classes of clauses for predicate inorder/2 : [[1],[2]] * Size functions for predicate inorder/2 : [$(1),$(1)] * Relation functions for predicate inorder/2 : [inf] * Solution functions for predicate inorder/2 : [1] * Time functions for predicate inorder/2 : [0.5*exp($(1),2)+2.5* $(1)] {Exexution Time: 8.0 msec} {End of Caslog execution.}