Annotated using CiaoPP: :- mode(select/3, [-,+,-]). :- measure(select/3, [size,length,size]). %complexity: select(o,i,o). %% select(X, Xs, Zs) :- Zs is the result of deleting one occurrence of X %% from the list Xs. %TWTYPES :- type select(poly,list,list). select(X, [X | Xs], Xs). select(X, [Y | Xs], [Y | Zs]) :- select(X, Xs, Zs). /*TWDESC select(X, Xs, Zs) :- Zs is the result of deleting one occurrence of X from the list Xs. */ /*TWTYPES list([]). list([X|Xs]) :- poly(X), list(Xs). poly(dummy). */ /*TWDEMO selected_norms([list,poly]). query(select(f,f,b,f,f,f)). query(select(f,f,f,b,f,f)). query(select(f,f,f,f,b,f)). query(select(f,f,f,f,f,b)). */ Caslog 1.0, April 1992. * Mutually exclusive classes of clauses for predicate select/3 : [[1,2]] * Size functions for predicate select/3 : [bot,$(2),bot] * Relation functions for predicate select/3 : [inf] * Solution functions for predicate select/3 : [$(2)] * Time functions for predicate select/3 : [2* $(2)] {Exexution Time: 4.0 msec} {End of Caslog execution.}