Lispworks Unidad 2

7
  Juan Carlos Sala zar Castañeda  NST TUTO TECNOLOG CO OCOTLAN PROGRAMACION LOGICA Y FUNCIONAL UNIDAD 2 LISPWORKS MAESTRO: OSCAR EDUARDO GONZALEZ JIMENEZ ALUMNO: JUAN CARLOS SALAZAR CASTAÑEDA

description

definicion y temas relacionados

Transcript of Lispworks Unidad 2

Juan Carlos Salazar Castaeda

Juan Carlos Salazar Castaeda

INSTITUTO TECNOLOGICO OCOTLAN

PROGRAMACION LOGICA Y FUNCIONALUNIDAD 2LISPWORKSMAESTRO: OSCAR EDUARDO GONZALEZ JIMENEZALUMNO: JUAN CARLOS SALAZAR CASTAEDA

IntroduccinLisp 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.

LISPWORKSes 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.TOMOUn 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.

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 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:

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.

CONCLUSIONCuando 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.