Bienvenidos
Este blog busca darle algunas herramientas para trabajar con varios de los programas más interesantes y útiles de la actualidad.
El objetivo es emplear ejemplos y su desarrollo paso a paso para que el aprendizaje sea lo más fácil y real posible.
El objetivo es emplear ejemplos y su desarrollo paso a paso para que el aprendizaje sea lo más fácil y real posible.
Etiquetas
- _todos_ (66)
- mathematica (1)
- programacion (66)
- prolog (48)
- purebasic (15)
- winprolog (47)
Datos personales
Videos Ejemplo
Programas
Frameworks
Libros
Mathematica
Todo el poder de Mathematica en la Web:
Ejemplos de uso:
1) Plot3D[Sin[x]*Cos[y],{x,0,2 Pi},{y,0,Pi}]
2) Colombia
Escribe el ejemplo y da 'enter' o clic en el igual
Ejemplos de uso:
1) Plot3D[Sin[x]*Cos[y],{x,0,2 Pi},{y,0,Pi}]
2) Colombia
Escribe el ejemplo y da 'enter' o clic en el igual
Seguidores
miércoles, 8 de junio de 2011
PROLOG: Compresion de una lista
11:05 |
Publicado por
a8a |
Editar entrada
Este programa permite eliminar los elementos repetidos en una lista. Los elementos a eliminar deben estar contiguos:
my_compress([], []). my_compress([X], [X]). my_compress([X, X|Xs], Zs):- my_compress([X|Xs], Zs). my_compress([X, Y|Ys], [X|Zs]):- X \= Y, my_compress([Y|Ys], Zs).
Para ejecutar el programa:
?- my_compress([a,a,e,e,e,c,c,b,b,b,b,d,f], Ls).
Y el resultado es:
Ls = [a,e,c,b,d,f]
Para ejecutar el programa:
?- my_compress([e,e,e,a,a,e,e,e,c,c,b,b,b,b,d,f], Ls).
Y el resultado es:
Ls = [e,a,e,c,b,d,f]
Suscribirse a:
Enviar comentarios (Atom)
2 comentarios:
Este programa sirve solo para letras pero no para números, aquí les dejo una solución mejor.
Este si trabaja bien, lo encontré en:
http://jc-info.blogspot.com/2009/02/uso-de-listas-en-prolog-codigo.html
elimRepetidos([],[]).
elimRepetidos([H|T],S):-esMiembro(H,T),!,
elimRepetidos(T,S).
elimRepetidos([H|T],[H|S]):-elimRepetidos(T,S).
%verifica sin un elemento es miembro de una Lista
esMiembro(X,[X|_]).
esMiembro(X,[_|T]):-esMiembro(X,T).
Simplificándolo usando el predicado "member" definido en Prolog quedaría:
elimRepetidos([],[]).
elimRepetidos([H|T],S):-member(H,T),!,
elimRepetidos(T,S).
elimRepetidos([H|T],[H|S]):-elimRepetidos(T,S).
Hola
Este programa funciona bien con números y letras. Lo único que debes tener en cuenta es que solo elimina elementos que este contiguos.
El programa:
http://xpasos.blogspot.com/2011/06/prolog-compresion-de-una-lista-version.html
es la versión 2 de este programa, y este puede eliminar elementos no contiguos. Este programa funciona igual al que tu recomiendas.
Saludos.
Publicar un comentario