Listas en Prolog
En Prolog la estructura de lista esta predefinida como una estructura
recursiva lineal cuyas componentes pueden ser heterogéneas porque en
Prolog
no existe una comprobación tipos. Básicamente una lista es una
estructura
con dos argumentos: la cabeza de la lista, que es un componente de la
lista,
y la cola que es otra lista con el resto de los componentes. Normalmente
existen dos notaciones para listas, una notación prefija: .(Cabeza,Cola)
y
una notación inflija [Cabeza|Cola] mas cómoda de utilizar, y para
denotar
la lista vacía se utiliza siempre []. Así, la lista (a,b,c,d) se puede
escribir
en Prolog de cualquiera de las dos formas siguientes:
(a,.(b,.(c,.(d.[])))) [a|[b|[c|[d|[]]]]],
sin embargo, la segunda forma admite simplificaciones que permiten escribir
todos los elementos de la lista entre corchetes y separados por comas:
[a,b,c,d],
o escribir varios elementos a la izquierda del símbolo |, también separados
por comas, así como cualquier combinación de estas dos formas; con lo que
nuestra lista se puede escribir de cualquiera de las formas siguientes:
[a|[b,c,d]] [a,b|[c,d]] [a,b,c|[d]] [a,b,c,d|[]] .
Es importante observar que en las dos notaciones para listas, el segundo
argumento debe ser siempre una lista, pues aunque como hemos dicho Prolog
no comprueba tipos, s´ı es capaz de distinguir las listas de otra clase de
términos. Así, notaciones como las siguientes
.
(a,b) [a|b]
se consideraran erróneas porque B es una constante (átomo) y no es una
lista.

Comentarios
Publicar un comentario