27 iunie 2010

Exercitii Prolog

% daca o lista e palindroma

is_palindrome(L) :- reverse(L,L).

% daca un numar este prim
radacina(X, Y):-
N is Y*Y, N =< X, X mod Y =:= 0.
radacina(X, Y):-
Y < X, Y1 is Y + 1, radacina(X, Y1).
prim(X):-
Y is 2, X > 1 , \+radacina(X, Y).


% duplicarea elem unei liste
dupli([],[]).
dupli([X|Xs],[X,X|Ys]) :- dupli(Xs,Ys).

se aplica: dupli([1,2,3], L).


% o lista care contine toate elementele intre 2 limite

range(I,I,[I]).
range(I,K,[I|L]) :- I < K, I1 is I + 1, range(I1,K,L).

se aplica: range(1,5, L).


altele

Niciun comentariu: