Está en la página 1de 3

%% listas tarea

concatenar([],L2,L2).
concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3).
% 1 seencuentra(L1,X)
seencuentra([X],X):-!.
seencuentra([X|L1],Y):-X=:=Y,!;seencuentra(L1,Y),!.
% 2 iguales(L1)
iguales([_]):-!.
iguales([X,X]):-!.
iguales([X,Y|L1]):-X=:=Y,iguales([X|L1]).
% 3 ordenados(L1)
ordenados(L1):-ordasc(L1),!;orddesc(L1),!.
ordasc([_]):-!.
ordasc([X,Y]):-X=<Y,!.
ordasc([X,Y|L1]):-X=<Y,ordasc([Y|L1]).
orddesc([_]):-!.
orddesc([X,Y]):-X>=Y,!.
orddesc([X,Y|L1]):-X>=Y,orddesc([Y|L1]).
% 4 menor(L1,Me)
menor(L1,Me):-menor1(L1,M),Me is M.
menor1([X],X):-!.
menor1([X,Y],M):-X=<Y,M is X,!;M is Y,!.
menor1([X,Y|L1],M):-X=<Y,menor1([X|L1],M1),M is M1,!;
menor1([Y|L1],M2),M is M2.
% 5 mayor(L1,My)
mayor(L1,My):-mayor1(L1,M),My is M.
mayor1([X],X):-!.
mayor1([X,Y],M):-X>=Y,M is X,!;M is Y,!.
mayor1([X,Y|L1],M):-X>=Y,mayor1([X|L1],M1),M is M1,!;
mayor1([Y|L1],M2),M is M2.
% 6 frecuencia(L1,X,Q1)
frecuencia(L1,X,Q1):- frec(L1,X,Q1).
frec([X],X1,Q):-X=:=X1,Q is 1,!; Q is 0.
frec([X|L1],X1,Q):-X=:=X1,frec(L1,X1,Q1), Q is Q1+1,!;
frec(L1,X1,Q),!.
% 7 diferentes(L1)
diferentes([_]):-!.
diferentes([X,Y]):-X=\=Y,!.
diferentes([X,Y|L1]):-X=\=Y,diferentes([X|L1]),diferentes([Y|L1]),!.

% 8 escalera(L1)
cantidad([],0):-!.
cantidad([_],1):-!.
cantidad([X|L1],C):-cantidad(L1,C1), C is C1+1,!.
escalera(L1):-cantidad(L1,C), mayor(L1,My),menor(L1,Me), My-Me=:=C-1,!.
% 9 suma(L1,Sum)
suma([],0):-!.
suma([X],X):-!.
suma([X|L1],Sum):-suma(L1,S), Sum is S+X,!.
% 10 sumapares(L1,Sum)
sumapares([],0):-!.
sumapares([X],Sum):-X mod 2=:=0,Sum is X,!; Sum is 0,!.
sumapares([X|L1],Sum):-X mod 2=:=0,sumapares(L1,S), Sum is S+X,!;
sumapares(L1,S1),Sum is S1,!.
% 11 eliminarprim(L1,L2)
eliminarprim([_],[]):-!.
eliminarprim([X|L1],L1):-!.
% 12 eliminarult(L1,L2)
eliminarult([_],[]):-!.
eliminarult([X|L1],[X|L2]):-eliminarult(L1,L2).
% 13 eliminar(L1,X,L2)
eliminar([X],X,[]):-!.
eliminar([X],_,[X]):-!.
eliminar([X|L1],X,L2):-eliminar(L1,X,L2),!.
eliminar([X|L1],X1,[X|L2]):-eliminar(L1,X1,L2),!.
% 14 eliminarunicos(L1,L2)
%eliminarunicos([],[]):-!.
%eliminarunicos([X],[]):-!.
%eliminarunicos([X,Y|L1],L2):-seencuentra(L1,X),eliminarunicos([Y|L1],L),concate
nar(),!.
% 15 inttolist(N,L1)
inttolist(N,[]):-N=:=0,!.
inttolist(N,L1):-N<10,concatenar([],[N],L1),!.
inttolist(N,L1):-N>0,X is (N mod 10),N1 is N//10,inttolist(N1,L),concatenar(L,[X
],L1),!.
% 16 factorialtolist(N,L1)
factorial(N,F):-factorial(N,0,F).
factorial(N,I,F):-I>=N,F is 1,!.

factorial(N,I,F):-I1 is I+1,factorial(N,I1,F1), F is I1*F1.


fact(N,L1):-fact(N,0,L1).
fact(N,N,[L1]):-factorial(N,L1),!.
fact(N,I,[I1|L1]):-factorial(I,I1),I2 is I+1,fact(N,I2,L1).
% 17 iesimoelem(L1,I,X)
iesimoelem(L1,I,X):-iesimoelem(L1,I,1,X).
iesimoelem([],_,_,X):-X is (-1),!.
iesimoelem([X],I,I,X):-!.
iesimoelem([_],I,J,Y):-I=\=J,Y is (-1),!.
iesimoelem([X|_],I,I,X):-!.
iesimoelem([_|L1],I,J,Y):-I=\=J,J1 is J+1,iesimoelem(L1,I,J1,Y),!.
% 18 eliminariesimo(L1,I,L2)
eliminariesimo(L1,I,L2):- eliminariesimo(L1,I,1,L2).
eliminariesimo([],_,_,[]):-!.
eliminariesimo([_],I,I,[]):-!.
eliminariesimo([X],I,J,[X]):-I=\=J,!.
eliminariesimo([_|L1],I,I,L1):-!.
eliminariesimo([X|L1],I,J,L2):-J1 is J+1,eliminariesimo(L1,I,J1,L3),concatenar([
X],L3,L2).
% 19 insertarprim(X,L1,L2)
insertarprim(X,L1,L2):-concatenar([X],L1,L2),!.
% 20 insertarult(X,L1,L2)
insertarult(X,L1,L2):-concatenar(L1,[X],L2),!.
% 21 insertariesimo(X,I,L1,L2)
insertariesimo(X,I,L1,L2):-insertariesimo(X,I,1,L1,L2),!.
insertariesimo(X,_,_,[],[X]):-!.
insertariesimo(X,I,I,L1,L2):-concatenar([X],L1,L2),!.
insertariesimo(X,I,J,[A|L1],L2):-J1 is J+1, insertariesimo(X,I,J1,L1,L3),concate
nar([A],L3,L2).
% 22 listtoint(L1,N)
cant([],0).
cant([_|L1],Q):-cant(L1,Q1), Q is Q1+1.
listtoint([],0):-!.
listtoint([X],N):-N is X,!.
listtoint([X|L1],N):-cant(L1,C),listtoint(L1,N1),N is (X*(10**C))+N1,!.

También podría gustarte