Una lista es una secuencia de elementos tales como:
[clara,tomas,jose,isabel]
La representación interna de las listas en PROLOG es con árboles binarios, donde la rama de la izquierda es el primer elemento –o cabeza– de la lista y la rama de la derecha es el resto –o cola– de la lista.
[]. Es una lista vacía. Y es el final de la lista (igual que funcional)
En el ejemplo anterior, la cabeza será clara y la cola
[tomas,jose,isabel].
El último elemento siempre es la lista vacía ([]).
La cabeza y la cola de una lista se pueden separar con el símbolo “|”.
[a,b,c]
[a|[b,c]]
[a,b|[c]]
[a,b,c|[]]
[a|X],[Y|[b,c]]
?- [a,b,c] == [a,b|[c]].
true.
El orden de los elementos en la lista importa y un elemento se puede repetir en una lista.
Supongamos que queremos determinar si un elemento es miembro de una lista. Los siguientes serían ejemplos del funcionamiento de la relación “miembro”.
miembro(b,[a,b,c]). %PROLOG respondería sí.
miembro(b,[a,[b,c]]). %PROLOG respondería no.
miembro([b,c],[a,[b,c]]). %PROLOG respondería sí.
Siendo miembro :
miembro(X,[X|_]).
miembro(X,[_|R]):-miembro(X,R).