%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  Nuove versioni con uso "cut"
% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%% abs(X,Y): vero se Y e' il valore assoluto di X

abs(X,Y) :- 
   X >= 0, !, Y = X.
abs(X,Y) :-
  Y is -X.


%%% leggi_lista_int(L)

leggi_lista_int([X|R]) :-     
       read(X),
       X >= 0, !,
       leggi_lista_int(R).
leggi_lista_int([]).


%%% inters(S1,S2,S3): S3 e' l'intersezione di S1 ed S2

inters([],_S,[]).
inters([X|R1],S2,[X|R3]) :-
      member(X,S2), !,
      inters(R1,S2,R3).
inters([_X|R1],S2,S3) :-
      inters(R1,S2,S3).
