Programacion

¡¡Bienvenidos!!

martes, 28 de junio de 2011

Dominios para listas

Como hemos dicho en el apartado anterior, Prolog es capaz de distinguir las listas de cualquier otra clase de términos, pero esta distinción la hace a nivel interno para detectar errores de notación durante el proceso de
unificación. Si en alg´un programa queremos saber si un t´ermino T es una lista (no vacía) podemos intentar unificarlo con una expresión de la forma [X|Xs] usando el predicado de unificaci´on expl´ıcita ‘.=.’, o podemos definir un predicado recursivo lista/1 en la forma:

lista([]).
lista([X|Xs]):-lista(Xs).

Este predicado es lo m´as parecido a una definici´on del tipo lista que se puede hacer en Prolog y sirve para comprobar si un t´ermino es una lista cuando se lo proporciona un argumento conocido, pero también sirve para generar, por re evaluación, listas cuyas componentes son variables libres.

No hay comentarios:

Publicar un comentario