simulacion

Páginas: 13 (3191 palabras) Publicado: 20 de junio de 2013
Las listas en Prolog:
Las listas son estructuras de datos muy poderosas para almacenar y manipular conjunto de términos. Se trata de un par ordenado donde cada componente es un término, una lista o el término NIL (que es la lista vacía y se escribe []). El primer componente de la lista se llama cabeza de la lista y la segunda cola. Denotamos a lista de la siguiente manera:
:= [ | ] ó [].Donde
:= ó
:= ó
Veamos algunos ejemplos:
[ 1 | [ 2 | [ 3 | [] ] ] ] es la lista cuya primer componente o cabeza es el termino constante 1 y la cola es la lista [ [ 2 | [ 3 | [] ] ] ].
Por abuso de notación, a la lista del ejemplo la denominamos [1, 2, 3].
Otros ejemplos:
[1, [a, b, [c]], 3, [pepe], [] ] es la lista cuya primera componente o cabeza es el termino constante 1 y la cola esla lista [[a, b, [c]], 3, [pepe], [] ]
[Numero (1), letra(a), [numero (2), letra (b)]] es una lista cuya primera componente o cabeza es el término formado por la estructura o factor numero (1) y la cola es la lista [letra(a), [numero (2), letra (b)]].
¿Cómo es el proceso de unificación cuando se tienen listas? El proceso es básicamente similar a la unificación con términos. Veamos algunosejemplos:
[X, Y] y [a, b] unifican con {X=a, Y=b}
[X, Y] y [[1, 2,3], [4,5]] unifican con {X= [1, 2,3], Y= [4,5]}
[X|Y] y [1, 2,3] unifican con {X=1, Y= [2,3]}. En este ejemplo, cabe destacar que la lista [1,2,3] es equivalente a la lista [ 1 | [ 2 | [ 3 | [] ] ] ] donde la cabeza es 1, que unifica con X y la cola es la lista [[ 2 | [ 3 | [] ] ] ] ó lo que es lo mismo, la lista [2,3] que unifica conY.
[X,Y] y [letra(a)|[letra(b)|letra(c)]]. Unifican con {X=letra(a), Y=[letra(b),letra(c)]}
[X|Y] y [] no unifican dado que la primera lista es una lista con al menos un elemento y la lista vacía no tiene elementos.
Tener en cuenta que [X,Y | Z] unifica con cualquier lista que tenga al menos dos elementos, es decir unifica, por ejemplo con [1,2] con la sustitución:{X=1, Y=2, Z=[] }
Tambiénunifica con la lista [1, 2, 3] con la sustitución {X=1, Y=2, Z=[3] }
Dando un ejemplo más realista, podríamos tener una base con las materias que cursa cada alumno, del siguiente modo:
cursa(juan, [matematicas, historia, computacion]).
cursa(ana, [matematicas, arte, historia]).
cursa(pedro, [geologia, logica, geografia]).
cursa(maria, [logica, arte, computacion]).
cursa(jose, [logica,historia, geografia]).
Más aún, podríamos decir que cada posición en la lista de materias, significa algo, como por ejemplo, que la primera posición corresponde a la primera hora, la segunda a la segunda hora y la tercera a la tercera hora, de modo que Juan, por ejemplo, cursa primero matemáticas, luego historia y en la tercera hora computación.
Estructuras Básicas:
Existen, en Prolog, básicamente 2estructuras: los términos y las sentencias. Los términos son los valores elementales en Prolog. Hay tres tipos de términos:
Constantes: Son los elementos más simples y se representan por medio de una cadena de caracteres, por ejemplo números o cualquier identificador que comience con una letra minúscula, ej.: a, Sócrates, 34, f4*iu
Variables: Se utilizan para especificar a un individuoindeterminado. Se identifican con una letra mayúscula al comienzo, ej.: X, Y, Pepe, Alfa4
Si quisiéramos saber quiénes son personas, podemos escribir la consulta persona(X)? a lo que Prolog responderá X/Sócrates, si es que puede deducir esa información de su programa lógico. Lo que estamos consultando, en términos del lenguaje natural es ¿qué valores se pueden asignar a la variable X para que la consultasea consecuencia lógica del programa?
En Prolog, el significado de las variables es diferente al que conocemos de los lenguajes tradicionales. Más que una posición de memoria, indica una indeterminación acerca de una identidad.
Estructuras: identificadores que comienzan con letra minúscula, seguidos de parámetros que a su vez son términos. Este tipo de estructuras se las conoce como factor...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Simulacion
  • Simulacion
  • simulacion
  • simulación
  • simulacion
  • Simulacion
  • Simulación
  • Simulacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS