lisp

Páginas: 5 (1041 palabras) Publicado: 11 de septiembre de 2013
ESTRUCTURA
DE LOS
LENGUAJES.
“LISP”



LISP
Lisp es un lenguaje de programación usado en el mundo de la inteligencia artificial. A diferencia de otros lenguajes de programación, en Lisp, a pesar de ser un lenguaje con una cierta antigüedad, no es un lenguaje del que se disponga de mucha documentación, de hecho, casi toda la documentación disponible esta en inglés.
Lisp se diferenciade otros lenguajes, en que la forma de entender la programación no es la clásica que todo el mundo suele manejar, es decir, la forma de programación es totalmente declarativay no procedimental como en el caso de los famosos lenguajes de programación C /C++ , Java , C# .NET , ASP , PHP , etc.
Cuando se quiere implementar un problema en Lisp, éste se realiza escribiendo lo que se quiere conseguiry como, pero sin indicar paso a paso la secuencia de acciones que la computadora debe de realizar. Esta filosofía aunque parezca extraña, 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.
El nombre LISP es un acrónimo de "LIStProcessing" que quiere decir procesamiento de listas. 

LISP es unlenguaje de programación funcional y simbólico. Su funcionamiento natural es interpretado (un ciclo que se llama aunque puede ser compilado. 
El modo que vamos a interactuar con LISP en este tutorial es en modo interactivo como una linea de comando, conocido como REPL (READ-EVAL-PRINT-LOOP). 

En términos muy informales, en un lenguaje funcional que es declarativo, lo que uno hace es escribirfunciones que se van anidando unas con otras para llegar a un resultado. Estas funciones no producen efectos secundarios, quiere decir que si yo le paso unos determinados valores, estos no se modifican, simplemente se operan con estos y se devuelve un resultado. LISP no es funcional puro, ya que permite este tipo de cosas y también permite el uso de iteración como de asignación de variables entre otrascosas típicas de lenguajes imperativos. La transparencia referencial se refiere a que llamar una función con los mismos datos me va a devolver el mismo resultado siempre. 

En la actualidad existen principalmente dos grandes ramas del lenguaje LISP, dos dialectos y que cada uno tiene sus características propias, estas ramas son "Common LISP" y "Scheme".





Palabras reservadas
carDevuelve el primer elemento de una lista (car lista)
> (CAR ‘(A B C D))
A
cdr
Devuelve la lista sin su primer elemento
(cdr lista)
> (cdr ’(a b c))
(B C)
cond
La palabra cond ejecuta un flujo de control dependiendo de la condición si es cierta o no. Es algo parecido al switch de C /C++ , Java , C# .NET , etc..pero con la diferencia que en este caso lo que se pone en los case son condicioneslógicas y no constantes.
(cond ((condicion1) bloque1) ((condicio2) bloque2) ... ((condicionN) bloqueN) )
> (defun notas (n)
(cond ((< n 5) ’suspenso)
(( (notas 8) => NOTABLE
cons
Añade al principio de una lista dada un elemento
(conselem lista)
> (cons ’a ’(b c d))
(A B C D)
defun
Define una función con un nombre el cual será llamado mediante el comando(nombre-funcionargs) y que tiene como argumentos una lista de variables. El cuerpo es una lista que define qué hace la función y es ésta la que ejecuta la acción.
Esto se consigue con la palabra clave defun.
(defun nombre-funcions (arg1 arg2 ... argn) “comentarios” (cuerpo ) )
(defun CUADRADO (x) "Mi funcion cuadrado"
(* x x
)
)
endp
Cierto (T, de true) si la lista está vacía, y nil(sin valor) en caso contrario
(endp '(a b c))
>nil
(endp '())
>T
eq
Se utiliza eq para saber si dos átomos son iguales, independientemente de la referencia.
Sintaxis (eq X Y)
(eq 3 3) => T
(eq 3 3.0) => NIL
(eq 3.0 3.0) => NIL
(eq (first ’(a b c)) ’a) => T
(eq (cons ’a ’(b c)) ’(a b c)) =>...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lisp
  • lisp
  • lisp dicertacion
  • programación Lisp
  • Examen LISP
  • ejercicios de lisp
  • Programación con lisp
  • lisp

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS