Listas en prolog
Operaciones sobre Listas
Listas en Prolog
Una lista es una secuencia de un número indeterminado de elementos.
animales =[perro, gato, raton, pajaro]
Es un árbol, como tododato estructurado de Prolog :
animales
perro
gato
raton
pajaro
Representación de Listas
Si la lista está vacía es, sencillamente, un átomo / predicado: [ ]
animales =[]
Si noestá vacía, consta de dos componentes: |
animales =[cabeza | cola]
El primer elemento: denominado cabeza de la lista El resto de la lista: denominado cola
animales =[perro, gato, raton, pajaro]cabeza=perro cola =[gato, raton, pajaro]
Los elementos de la lista pueden ser de cualquier tipo (incluso otras listas)
Operaciones sobre Listas
Pertenencia
Un elemento está o no en la lista.
Unelemento X es miembro de una lista L:
– Si X es la cabeza de la lista O,
member (X, [X | cola]).
– Si X es miembro de la cola de la lista. . member (X, [L | O]): - member (X, Cola)
Ejemplo:. member(b, [a,b,c]).
x= b. L=(b, [a,b,c]). cabeza= a cola= [ b, c]
member (X, [X | cola]). member (X, [cabeza | cola]): - member (X, cola)
Concatenación Unión de dos listas en el orden enque aparecen.
conc([a, b],[c, d], [a, b, c, d])
Dos posibles casos: – Si el primer argumento es la lista vacía, entonces los argumentos segundo y tercero tienen que ser la misma lista
conc ([], L,L).
– Si el primer argumento es una lista no vacía, podremos concatenar las dos listas con su respectiva cabeza y cola.
conc (L1, L2,L3).
Ejemplo:
. Se puede usar para concatenar dos listasdadas
?conc ([a,b,c], [1,2,3], L). L = [a, b, c, 1, 2, 3]
Inserción Añadir un elemento a una lista – Si deseamos poner el elemento X al comienzo de la lista L:
[X | L ]
– Es decir, no senecesita definir ningún procedimiento para ello. En cualquier caso, éste podría definirse como el hecho:
añadir(X, L, [X|L]).
Ejemplo:
Añadir un elemento e al principio de la lista L
?L = [a,...
Regístrate para leer el documento completo.