En Prolog hablamos de variables lógicas, que significa identidad entre literales.
Es decir, un programa es un conjunto de reglas que colectivamente declaran lo que es cierto acerca de nuestros literales, y que los literales son no interpretados. Escribimos reglas usando variables para describir relaciones sobre individuos, y mientras tratamos de probar si nuestra consulta puede ser cierta, Prolog vincula variables según lo dicte la regla.
Una lista es simplemente azúcar sintaxis de una relación binaria entre un término (la cabeza ) y (nótese la recursividad aquí) una lista. Usualmente, cuando hablamos de una base de datos , usamos hechos (reglas sin cuerpo, siempre verdaderos) que enlazan literales atómicos.
De modo que ese tutorial probablemente exprese la tarea en palabras diferentes de las que informa, o es algo engañoso.Se podría de todos modos almacenar listas en su base de datos como tal:
mylist([a,b,c]).
y escribir su programa como:
myprog(X) :- mylist(L), member(X, L).
A continuación, puede consultar el programa como:
?- myprog(X).
y Prolog, tratando para probar myprog/1, intentar probar mylist/1 y miembro/2 ... Para probar mylist (X) la variable X se une a [a, b, c].
HTH