% Uebung 9.1 Range Restriction / Bereichsbeschränkung % --------------------------------------------------- % % zu bearbeitende Regeln % member0(X,[X|_]). member0(X,[_|L]) :- member0(X,L). select0(X,[X|R],R). select0(X,[Y|L0],[Y|L1]) :- select0(X,L0,L1). restricted_select(X,Y,Z) :- select0(1,[1,X,Y],Z). % gegeben ist die Definition von cons/3 cons(E,N,L) :- L=[E|N]. % fb memberC(X,L) :- cons(X,_,L). % fb memberC(X,L0) :- cons(_,L,L0), memberC(X,L). % bfb, fbf selectC(X,L,R) :- cons(X,R,L). % bfb, fbf selectC(X,A0,A1) :- cons(Y,L0,A0), cons(Y,L1,A1), selectC(X,L0,L1). % ffb, bbf restricted_selectC(X,Y,Z) :- cons(1,L1,L0), cons(X,L2,L1), cons(Y,[],L2), selectC(1,L0,Z).