Sunteți pe pagina 1din 7

Juan Carlos Salazar Castaeda

INSTITUTO TECNOLOGICO OCOTLAN

PROGRAMACION LOGICA Y FUNCIONAL


UNIDAD 2
LISPWORKS
MAESTRO: OSCAR EDUARDO GONZALEZ
JIMENEZ
ALUMNO: JUAN CARLOS SALAZAR
CASTAEDA

Juan Carlos Salazar Castaeda

Introduccin
Lisp es un lenguaje de programacin usado en el mundo de la
inteligencia artificial. A diferencia de otros lenguajes de programacin,
en Lisp, a pesar de ser un lenguaje con una cierta antigedad, no es
un lenguaje del que se disponga de mucha documentacin, de hecho,
casi toda la documentacin disponible esta en ingls.

Juan Carlos Salazar Castaeda

LISPWORKS
es una implementacin comercial y entorno de desarrollo integrado
para el lenguaje de programacin Lisp Comn. El software se ejecuta
en Microsoft Windows, Mac OS X (PowerPC, Intel), Linux, FreeBSD,
Solaris (x86 / x64, SPARC) y HP UX.
LispWorks fue desarrollado por la compaa de software del Reino
Unido Harlequin Ltd., y publicado por primera vez en 1989. [1]
Harlequin en ltima instancia escindi su brazo Lisp como Xanalys,
que se hizo cargo de la gestin y de los derechos a LispWorks. En
enero de 2005, el equipo Xanalys Lisp form LispWorks Ltd. al
mercado, desarrollar y apoyar el software LispWorks.

TOMO
Un tomo simblico es un tomo que representa algo ms, como el
nombre de una funcin o el valor de una variable. Un tomo
simblico si no tiene asignado un valor, al evaluarse devolver una
lista vaca. Las funciones como set, setq y defun permiten asignarle
valores a los tomos-S.
Los nombres de smbolos no distinguen entre maysculas y
minsculas, y pueden ser cualquier secuencia de caracteres de
notacin y alfanumricos a excepcin de los siguientes: ( ) . ' " ; .
Un nombre de smbolo no puede estar compuesto slo por
caracteres numricos ya que un nmero se representa a s mismo y
es por tanto una constante. Lo mismo sucede con los nombres
entrecomillados.

Juan Carlos Salazar Castaeda

Listas
Una LISTA se define recursivamente ya sea como la lista vaca o
como un CONS cuyo componente CDR es una lista. Una lista es,
por consiguiente, una cadena de CONSES enlazados por sus
componentes CDR y terminada por un NIL, la lista vaca. Los
componentes CAR de los conses son conocidos como los
elementos de la lista. Para cada elemento de la lista hay un CONS.
La lista vaca no tiene ningn elemento.
Para comprender mejor lo anterior, adelantaremos la mencin de la
funcin bsica de construccin de listas, que es la funcin CONS
(que se explica en el apartado FUNCIONES DE CONSTRUCCIN
DE LISTAS). Expresado en trminos de esta funcin, la anterior
definicin de una lista como una cadena de CONSES sera:

Una LISTA se expresa mediante la escritura de los elementos de la


lista ordenados, separados por espacios en blanco (caracteres de
espacio, tabulador o retorno) y rodeados por parntesis. Por
ejemplo:

Una lista punteada (dotted list) es una cuyo ltimo cons no tiene NIL
como su CDR, sino otro objeto de informacin (que tampoco ser un

Juan Carlos Salazar Castaeda


CONS, ya que entonces el CONS anteriormente mencionado no
hubiera sido el ltimo CONS de la lista).

Tal tipo de lista se conoce como "punteada" debido a la notacin


especial que se emplea en ella: los elementos de la lista se escriben,
al igual que antes, entre parntesis, pero ... antes del parntesis
derecho se escriben un punto (rodeado por espacios en blanco) y
entonces el CDR del ltimo CONS. Como caso especial, un CONS
aislado se expresa escribiendo el CAR y el CDR entre parntesis y
separados por un punto rodeado de espacios (par punteado). Por
ejemplo:

Juan Carlos Salazar Castaeda

CONS: Un CONS es una estructura de informacin que contiene dos


componentes llamados el CAR y el CDR. La utilizacin fundamental de
los CONSES es como representacin de LISTAS.

CAR: Devuelve el primer elemento de una lista (car lista)

Cdr: Devuelve la lista sin su primer elemento

QUOTE: La funcin quote evita la evaluacin de su argumento.

Juan Carlos Salazar Castaeda

CONCLUSION
Cuando se quiere implementar un problema en Lisp, ste se realiza
escribiendo lo que se quiere conseguir y como, pero sin indicar paso a
paso la secuencia de acciones que la computadora debe de realizar.
Esta filosofa aunque parezca extraa, seguro que muchos
programadores ya la han usado, ya que existen otros lenguajes
declarativos como puedan ser el Prolog, Perl e incluso el mismo SQL.
En estos lenguajes especificamos el qu queremos obtener sin
preocuparnos del cmo.

S-ar putea să vă placă și