|
@@ -0,0 +1,30 @@
|
|
|
+find([X|_], X).
|
|
|
+find([_|L], X) :- find(L,X).
|
|
|
+
|
|
|
+concatenate([X|L1], L2, [X|L3]) :- concatenate(L1,L2,L3).
|
|
|
+concatenate([],L,L).
|
|
|
+
|
|
|
+pow(_,0,1).
|
|
|
+pow(X,1,X) :- !.
|
|
|
+pow(X,N,R) :- N1 is N-1, pow(X,N1,R1), R is X*R1.
|
|
|
+
|
|
|
+
|
|
|
+powb(_,0,1) :- !.
|
|
|
+powb(X,1,X) :- !.
|
|
|
+powb(X,N,R) :- N1 is N-1, powb(X,N1,R1), R is R1*X.
|
|
|
+
|
|
|
+part([X|L],Y,[X|L1],L2) :- X =< Y, !, part(L,Y,L1,L2).
|
|
|
+part([X|L],Y,L1,[X|L2]) :- X > Y, !, part(L,Y,L1,L2).
|
|
|
+part([],_,[],[]).
|
|
|
+
|
|
|
+quicksort([],[]).
|
|
|
+quicksort([H|T], Sorted) :- part(T,H,L1,L2), !, quicksort(L1,Sorted1), quicksort(L2,Sorted2), append(Sorted1,[H|Sorted2],Sorted).
|
|
|
+
|
|
|
+map(_,[],[]).
|
|
|
+map(C,[X|Xs],[Y|Ys]) :- call(C,X,Y), !, map(C,Xs,Ys).
|
|
|
+
|
|
|
+square(N,R) :- R is N*N.
|
|
|
+
|
|
|
+not(X) :- call(X), !, fail.
|
|
|
+not(_).
|
|
|
+
|