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

Entradas más populares de este blog

Ciencias relacionadas con la Inteligencia Artificial

Ingenieria de conocimiento