Búscalo aquí:

Uso de Listas en Prolog [código]

Una lista es una estructura de datos que son usadas para almacenar elementos de un mismo tipo. En Prolog, las listas son colecciones de elementos. Una lista esta formada por dos partes: Cabeza: que es el primer elemento de la lista, y Cola: que es una lista con el resto de elementos. Como se puede presumir, y por característica propia del lenguaje de programación lógica, una lista es una estructura recursiva.



La cabeza y la cola, en Prolog, son separadas por el símbolo '|', y una lista vacia es representada por '[]'. en este post se mostrarán algunos ejemplos prácticos, mediante código en Prolog, del uso de listas.

  1. %3. problemas de listas en prolog usando SWI Prolog
  2. %3a. hallar la longitud de una lista
  3. lenght([],0).
  4. lenght([_|T],Total):- lenght(T,Tmp),
  5. Total is Tmp+1.
  6. %3.b. Detectar el menor elemento de una lista
  7. menorlista([],0).
  8. menorlista([X],X).
  9. menorlista([X|L],X):- menorlista(L,Y),
  10. menor(X,Y).
  11. menorlista([X|L],Y):- menorlista(L,Y),
  12. menor(Y,X).
  13. menor(X,Y):- X =<>
  14. %3.c. Hallar el enesimo elemento de una lista
  15. buscar(_,0,_).
  16. buscar([H|_],1,H).
  17. buscar([_|T],N,Buscado):- N1 is N-1,
  18. buscar(T,N1,Buscado).
  19. %3.d. Union de los elementos de dos listas
  20. union([],L,L).
  21. union(L,[],L).
  22. union(L1,L2,L3):- concat(L1,L2,Laux),
  23. elimRepetidos(Laux,L3).
  24. %3.e. Hallar la concatenación de dos listas
  25. concat([],[H|[]],[H]).
  26. concat([H|[]],[],[H]).
  27. concat([],[H|T],[H|TC]):-concat([],T,TC).
  28. concat([H|T],B,[H|TC]):-concat(T,B,TC).
  29. concat([H|T],[],[H|TC]):-concat(T,[],TC).
  30. %3.f. la reversa de una lista
  31. %agregamos un elemento al final de la lista
  32. reversa([],[]).
  33. reversa([H|T],L):-reversa(T,S),append(S,H,L).
  34. append([],L,[L]).
  35. append([H|T],N,[H|S]):-append(T,N,S).
  36. %3.g. Eliminar todos los elementos repetidos de una lista
  37. elimRepetidos([],[]).
  38. elimRepetidos([H|T],S):-esMiembro(H,T),
  39. !,
  40. elimRepetidos(T,S).
  41. elimRepetidos([H|T],[H|S]):-elimRepetidos(T,S).
  42. %verifica sin un elemento es miembro de una Lista
  43. esMiembro(X,[X|_]).
  44. esMiembro(X,[_|T]):-esMiembro(X,T).

-->

Espero les sea de utilidad.


Quieres leer más post como éste???...suscribete aquí!!!


2 comentarios:

  1. Excelente blog, mucha información muy interesante. Me gustaría haberlo encontrado antes.

    Muchas felicidades!

    ResponderEliminar
  2. hola muy bueno el blog!!. olle necesito por favor que me ayudes a dar una consulta teniendo en cuenta tu formula
    lenght([],0).
    lenght([_|T],Total):-
    lenght(T,Tmp),
    Total is Tmp+1.
    la consulta me tiene que indicar cuantos elementos tengo en mi lista. por fa grax

    ResponderEliminar

Bienvenido a jcGeorge's Blog!!!

Por favor deja tu comentario, consulta o sugerencia, procura mantener habilitado tu perfil de Blogger o deja un enlace a tu blog o web.

Gracias por leer este blog!!!

Related Posts Plugin for WordPress, Blogger...