Listas

Solo disponible en BuenasTareas
  • Páginas : 3 (749 palabras )
  • Descarga(s) : 0
  • Publicado : 4 de junio de 2011
Leer documento completo
Vista previa del texto
Uso de listas en Prolog

Abdiel E. C´ceres Gonz´lez (recopilador) a a
Instituto Tecnol´gico de Monterrey o campus Ciudad de M´xico e

Abstract Este documento es un resumen del uso de listas enProlog, se pretende que sea una guia r´pida y de uso frecuente para los usuarios e interesados en el uso de Prolog. a

1

Estructura de una lista

Una lista en Prolog (como en casi cualquierlenguaje que use listas) se divide en dos partes: (1) Cabeza. Es el primer elemento de la lista. Puede ser un ´tomo o una a lista, pero a fin de cuentas es el primer elemento de la lista original. (2)Cola. Es el resto de los elementos de una lista, es de nuevo una lista. Ejemplos: (1) L=[perro, gato, raton, queso] (a) cabeza= perro (b) cola=[gato, raton, queso] (2) L=[[perro, gato], [raton, queso]](a) cabeza=[perro, gato] (b) cola=[[raton, queso]] (3) L=[perro] (a) cabeza=perro (b) cola=[] la lista vac´a ı (4) L=[] (a) cabeza= NO (b) cola=[] la lista vac´a ı

1

2

Manejo del contenido delas listas

En esta secci´n se ver´ el uso de las listas para determinar la existencia de un o a elemento en la lista e incluso el uso de recursividad. En primer lugar, la existencia de un elementoen la lista se puede verificaci con una regla como: pertenece(E,L):-L=[E| ]. Que dice que el elemento E pertenece a la lista L si L se puede hacer teniendo una lista cuya cabeza sea E y cualquier cola,incluso la lista vac´ ıa. Pero esto solamente nos asegura la pertenencia de la cabeza de la lista, no si un elemento est´ dentro de ella. Para esto se necesita una segunda cl´usula a a recursiva:pertenece(E,[ |T]):-pertenece(E,T). Es decir “un elemento E pertenece a una lista compuesta de cualquier cabeza y una cola T, si ese mismo elemento E es la cabeza del resto de la lista T”. As´ se tieneel siguiente programa en Prolog que verifica la pertenencia de un ı elemento en una lista: pertenece(E,L):-L=[E|_]. pertenece(E,[_|T]):-pertenece(E,T). :-pertenece(E,[a,b,c,d,e].)

3

Uso de la...
tracking img