ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Lenguaje De Lisp


Enviado por   •  18 de Mayo de 2012  •  2.214 Palabras (9 Páginas)  •  579 Visitas

Página 1 de 9

PROLOG SYNTAX

Las unidades fundamentales de la sintaxis de Prolog son átomos, números, estructuras y vari ables. Vamos a discutir los números y las estructuras adicionales en el capítulo 3. Los átomos, los números,

estructuras, y las variables en conjunto se conoce como TÉRMINOS.

Los átomos se utilizan como nombres de las personas y los predicados. Un átomo normal

comienza con una letra minúscula y puede contener letras, dígitos y el subrayado

marca (_). Los siguientes son ejemplos de átomos: x

Georgia

ax123aBCD

abcd_x_and_y_a_long_example

Si un átomo se encierra entre comillas simples, que pueden contener cualquier carácter que sea,

pero hay dos puntos a tener en cuenta. En primer lugar, una cita que ocurre dentro de comillas simples es

Normalmente se escribe doble. En segundo lugar, en algunas aplicaciones, una barra invertida dentro de un

átomo tiene un significado especial, para más detalles véase el Apéndice A y el manual. Por lo tanto,

los siguientes son los átomos:

'Florida'

'un átomo de muy larga con espacios en blanco es'

'12 $ 12 $ '

' a'

'don ' ' t preocupes '

'de atrás \ \ barras de'

De hecho, '32 'es un átomo no, igual al número 32. Incluso ' ' es un átomo (el vacío

átomo), a pesar de que rara vez se utiliza.

Los átomos compuestos enteramente de ciertos caracteres especiales no tienen que ser por escrito

entre comillas, por ejemplo, '->' (sin comillas) es un átomo de legitimidad. (Vamos a

conocer este dato en el capítulo 6.) Normalmente, no hay límite en la longitud de

un átomo, con o sin comillas, pero revise el manual de su aplicación para

estar seguro.

Una estructura normalmente consta de un átomo, un paréntesis de apertura, una o más

argumentos separados por comas y un paréntesis de cierre. Sin embargo, un átomo por

es en sí mismo, en sentido estricto, también una estructura, sin argumentos.

Todos los siguientes son estructuras:

una (b, c, d)

located_in (Atlanta, Texas)

located_in (X, Georgia)

mother_of (Cathy, la melodía)

'un extraño?! Atom '(xxx, yyy, zzz)

i_have_no_arguments

El átomo al principio se llama el funtor de la estructura. (Si algunos de los

los argumentos son también las estructuras, entonces el funtor al principio de todo el asunto es

llama el funtor principal.) Hasta ahora hemos utilizado sólo en las estructuras de las consultas, los hechos,

y las reglas. En todos estos casos, el funtor significaba el nombre de un predicado. funtores

tienen otros usos que se darán cita en el capítulo 3.

En realidad, incluso una regla es una estructura completa; la rule

a (X): - B (X).

podría igualmente ser escrito

:-( una (X), b (X)).

o, posiblemente, en algunas implementaciones,

': -' (una (X), b (X))

El functor ': -' se llama un operador infijo, ya que normalmente se escribe entre

sus argumentos en lugar de en frente de ellos. En el capítulo 6 veremos cómo crear

funtores otros con esta característica especial.

Las variables comienzan con mayúsculas o la marca de subrayado, como los siguientes: Un Which_Ever Resultado

_howdy Xx _12345

Un nombre de variable puede contener letras, dígitos y guiones bajos.

Bases de conocimiento Prolog se escriben en formato libre. Es decir, usted es libre para insertar espacios o empezar una nueva línea en cualquier momento, con dos restricciones: no se puede romper un átomo o un nombre de variable, y no se puede poner cualquier cosa entre un functor y el la apertura de paréntesis, que presenta sus argumentos. Es decir, en lugar de

located_in(atlanta,georgia).

eres bienvenido a

located_in( atlanta,

georgia ).

pero no

located_in (at lanta,georgia). % two syntax errors!

La mayoría de las implementaciones de Prolog requieren todas las cláusulas de un predicado

que se agrupan en el archivo desde el que las cláusulas se cargan. Es decir, se puede

decir

mother(melody,cathy).

mother(eleanor,melody).

father(michael,cathy).

father(jim,melody).

pero no

mother(melody,cathy). % wrong!

father(michael,cathy).

mother(eleanor,melody).

father(jim,melody).

Los resultados de la violación de esta norma son de hasta el implementador. Prólogos hacen muchos

no se opuso en absoluto. Quintus Prolog ofrece mensajes de advertencia, pero carga todas las cláusulas correctamente. Unos pocos Prólogs ignoran algunas de las cláusulas sin previo aviso. Consulte los Apéndices A y B para obtener más información acerca de los conjuntos contiguos de cláusulas.

DEFINICIÓN DE LAS RELACIONES

El archivo FAMILY.PL (Figura 1.4) contiene información sobre la familia de

los autores. Se exponen hechos en términos de la madre y el padre relaciones, cada uno de ellosvincula a dos individuos. En cada par, hemos decidido incluir a los padres en primer lugar una hijo o segunda hija. FAMILY.PL puede responder a preguntas como "¿Quién es la madre de Cathy?" -

?- mother(X,cathy).

X = melody

o "¿Quién es la madre de Hazel?" -

?- mother(hazel,A).

A = michael

A = julie

Más importante aún, podemos definir otras relaciones en términos de los que ya están definidos.

Por ejemplo, vamos a definir "padre." El padre de X es el padre o la madre de X. Desde

hay dos maneras de ser un padre, dos normas son necesarias:

parent(X,Y) :- father(X,Y).

parent(X,Y) :- mother(X,Y).

% File FAMILY.PL

% Part of a family tree expressed in Prolog

% In father/2, mother/2, and parent/2,

% first arg. is parent and second arg. is child.

father(michael,cathy) .

father(michael,sharon ).

father(charles_gordon ,mi ch ae l) .

father(charles_gordon ,ju li e) .

father(charles,charle s_g or do n) .

father(jim,melody).

father(jim,crystal).

father(elmo,jim).

father(greg,stephanie ).

father(greg,danielle) .

mother(melody,cathy).

mother(melody,sharon) .

mother(hazel,michael) .

mother(hazel,julie).

mother(eleanor,melody

...

Descargar como (para miembros actualizados) txt (15 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com