Este es un sencillo codekata o howto para hacer listas de elementos en Prolog y cómo recorrer una. La forma de declarar una lista de elementos es con los corchetes, separando cada elemento por comas.
El código fuente
Una forma de declarar varias listas, que fueran por ejemplo oraciones, es decir, listas de palabras ordenadas, podría ser como lo siguiente:
% Probando listas de elementos en Prolog..
oracion([]).
oracion([el,perro,roe,un,hueso]).
oracion([el,gato,maulla]).
oracion([la,persona,esta,programando,en,prolog]).
Ahora si quisiéramos recorrer una oración en concreto, escribiendo por pantalla los datos, podría ser algo así:
recorreOracion([]).
recorreOracion([Cabeza|Cola]) :-
write(Cabeza),nl,
recorreOracion(Cola).
Nota que el caso base no hace nada y detiene la ejecución. Se puede quitar y funciona. Pero es menos legible y devolverá false el predicado. Esto ocurre porque al llegar al final de la lista, pasará una cola vacía, y si no encuentra el predicado devuelve false. Es decir, que es buena práctica definir todos los casos posibles de la recursión.