Prolog - Manejo de Listas

Esta semana nuestro avance se centro principalmente en el manejo de listas, las practicas realizadas fueron las siguientes y se centran en el funcionamiento de la recursividad en las listas en Prolog.

% Longitud de una Lista
% longitud(+Lista,-LongitudLista).

longitud([],0).
longitud([_|T], R2) :- longitud(T,R), R2 is R + 1.

% Invertir una Lista
% invertir(+Lista,-ListaInvertida).
% agregar_final(+Elemento,+Lista,-ListaConElemento).

invertir([],[]).
invertir([Ca|Resto],R2) :- invertir(Resto,R),agregar_final(Ca,R,R2).
agregar_final(E,[],[E]).
agregar_final(E,[Ca|Resto],[Ca|R]) :- agregar_final(E,Resto,R).

% Concatenar dos Listas
% concatena(+Lista1,+Lista2,-ListasConcatenadas).

concatena([],L2,L2).
concatena([Ca|Resto],L2,[Ca|R]) :- concatena(Resto,L2,R).

% Comprimir Lista
% comprime(+Lista,-ListaComprimida).

comprime([Ca1,Ca2|Resto],[(Ca1,1)|R]) :-
Ca1\=Ca2, comprime([Ca2|Resto],R).
comprime([Ca1,Ca1|Resto], [(Ca1,N2)|R]):-
comprime([Ca1|Resto],[(Ca1,N)|R]), N2 is N+1.
comprime([],[]).
comprime([E],[(E,1)]).





Fuentes:

Video Tutoriales de josecarpioc.

1 comentario:

  1. Harrah's Atlantic City - MapyRO
    Harrah's Atlantic City is 군산 출장안마 a racino hotel, casino and hotel located 공주 출장안마 in the 영천 출장안마 Marina District in Atlantic City, NJ. 울산광역 출장샵 The casino is owned and 경기도 출장안마 operated by

    ResponderBorrar