Algo decriptivo

Solo disponible en BuenasTareas
  • Páginas : 8 (1964 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de septiembre de 2012
Leer documento completo
Vista previa del texto
~ Programacion Lisp ~

dijo:

Listas

El elemento fundamental en Lisp es la lista, en el sentido más amplio del término, pues tanto los datos como los programas son listas. De ahí viene su nombre, pues Lisp es un acrónimo de "LIStProcessing".

Las listas en LISP están delimitadas por paréntesis. De aquí viene el chiste del significado de LISP: "LostInStupidParentheses" que aunque conbuen humor es completamente ficticio.

Algunas de las funciones predefinidas de Lisp tienen símbolos familiares (+ para la suma, * para el producto), pero otras son más exóticas, especialmente dos que sirven precisamente para manipular listas, descomponiéndolas en sus componentes. Sus nombres ("car" y "cdr" ) son un poco extraños(1), reliquias de tiempos pasados y de la estructura de losordenadores de segunda generación, "car" devuelve la cabeza de una lista y "cdr" su cola o resto.

Lisp sigue una filosofía de tratamiento no-destructivo de los parámetros, de modo que la mayoría de las funciones devuelven una lista resultado de efectuar alguna transformación sobre la que recibieron, pero sin alterar esta última.

Uno de los motivos por los que Lisp es especialmente adecuado para laIA es el hecho de que el código y los datos tengan el mismo tratamiento (como listas); esto hace especialmente sencillo escribir programas capaces de escribir otros programas según las circunstancias.

Lisp fue uno de los primeros lenguajes de programación en incluir manejo de excepciones con las primitivas catch y throw.

Derivado del Lisp es el lenguaje de programación Logo. Sin entrar endetalles, podría decirse que Logo es Lisp sin paréntesis y con operadores aritméticos infijos.

De ahí que hoy tengan alias más significativos como "first"(car) y "rest"(cdr).

Esa es la reseña mas breve y la mas explicativa para mi, ahora a ver funciones..
dijo:

Funciones en Lisp

* Funciones normales, son las que se suelen incluir en las implementaciones de LISP (ver manual encada caso).
* Funciones de lista, para manipulación de listas:
o car L, devuelve el primer elemento de L.
o cdr L, devuelve la cola (lista - primero).
o cons x y, devuelve uan lista formada por x e y.
o list x y z, devuelve la lista (x y z).
o quote x, no se evalúa x.
* Predicados
o atom x, devuelve True si x es un átomo.
o numberp x, devuelve True si x es un número.
o greaterp xy, devuelve True si x>y.
o lessp x y, devuelve True si x<y.
o null x, devuelve True si x es nulo.
o and x y, devuelve x and y.
o or x y, devuelve x or y.
o not x, devuelve not x.
o eq x y, devuelve True si x=y.
* Funciones aritméticas:
o +, -, *, y /.
o rem x y, devuelve el módulo x/y (remainder).
* Funciones de entrada y salida
o load nombrearchivo, lee el archivo amemoria.
o print x, imprime el elemento x.
o open nombrearchivo, abre un archivo y devuelve una puntero al mismo.
o read, lee del terminal un átomo.
o help, proporciona ayuda.
o trace, traza la función.
o bye, termina LISP.

Estos son ejercicios sencillos, no trabajo con archivos pero para empezar..

setq: Asignacion
dijo:

(setq x '(1 2 3 4 5)) => A x se le asigna la lista(1 2 3 4 5)

(setq hola '(Buen_Dia)) => A hola se le asigna la lista (Buen_Dia)

(setq y '(323 435 jojo 2 jiji)) => A y se le asigna ESA lista

(setq z 4) => A z se le asigna el atomo o elemento 4

car: toma el primer elemento de una lista
dijo:

(car x) => 1

(car y) => 323

cdr: quita el primer elemento de una lista
dijo:

(cdr x) => (2 3 4 5)

(cdry) => (435 jojo 2 jiji)

If Simple
dijo:

_ Primero le asigno con SETQ una lista '(5 2) a x

> (setq x '(5 2))
(5 2)

_ Luego pregunto:

> (if (> (car x ) (car (cdr x ))) (list (car x )) (list (car (cdr x ))))
(5)

____________________________________________________________________

> (es (> 5 2)

[si SI] => (lista 5)

[si NO] => (lista...
tracking img