Apunte Lisp

Páginas: 8 (1871 palabras) Publicado: 22 de mayo de 2012
Lenguaje de Programación LISP


Toma su nombre del inglés: List Processing
Los tipos de datos básicos con los que se trabaja en LISP son: átomos y listas

Átomo: es un elemento indivisible que tiene significado propio.

Ej.: 54 , 3.14 , + , lunes , sol
Los átomos 54 y 3.14 son átomos numéricos y los otros son átomos simbólicos.

Lista: consta deun paréntesis izquierdo, seguida por cero o más átomos o listas, y un paréntesis derecho. Cada componente de la lista se denomina elemento.

Ej.: (a 23 ( 8 hola ( ) ) 3.1 ) lista con 4 elementos

La lista nula tiene la característica de ser lista y átomo a la vez , y se representa por:
( ) o bien NIL.
Los valores de verdad están representados por elátomo T y el átomo NIL (que representan el verdadero y falso respectivamente).

Lisp también tiene otros tipos de datos como ser caracteres, arreglos, cadenas y estructuras.

La notación en LISP es prefija. Por ej.: ( + 2 3 ) para sumar 2 + 3

Funciones primitivas

-Selectores de elementos de una lista

1) CAR o bien FIRST aplicado a una listadevuelve el primer elemento de la lista

Ej.: ( CAR ‘( 1 2 3 ) )  1

( FIRST ‘( ( a b) 8 ( 6) ) )  ( a b )

2) CDR o bien REST aplicado a una lista devuelve la lista original sin el primer elemento

Ej.: ( CDR ‘( 1 2 3 ) )  ( 2 3 )

(REST ‘( ( a b) 8 ( 6) ) ) ( 8 ( 6 ) )

3) NTH aplicado a una lista y un número devuelve el elemento ubicado en la posición indicada por el número

Ej.: ( NTH 3 ‘( a b c d) )  c





- Función QUOTE

La función QUOTE evita la evaluación de su argumento devolviéndolo sin evaluar.

(quote (a b c) )  (a b c)

Se puede usar el apóstrofo comoabreviatura para QUOTE . Por lo tanto la expresión que sigue es equivalente a la anterior.

‘(a b c)  (a b c)

El hecho de proporcionar el apóstrofo como una abreviatura para QUOTE, se considera una manera de refinamiento sintáctico.

- Constructores de listas

1) ( CONS ) devuelve una nueva lista donde el primer elemento es elobjeto y los elementos restantes son los de la lista original

Ej.: ( CONS ‘a ‘( 1 2 3) )  ( a 1 2 3 )


2) ( APPEND ) devuelve una nueva lista uniendo los elementos de
de las listas argumento

Ej.: ( APPEND ‘(a b ) ‘( 1 2 3) )  ( a b 1 2 3 )


3) (LIST ... ) devuelve una nueva lista cuyos elementos son
los argumentos.

Ej.: ( LIST ‘a ‘b ‘( 1 2 3) )  ( a b ( 1 2 3 ) )

Ejemplo que muestra la diferencia entre las tres:

( CONS ‘(a b ) ‘( 1 2 3) )  ( (a b ) 1 2 3 )

( APPEND ‘(a b ) ‘( 1 2 3) ) ( a b 1 2 3 )

( LIST ‘(a b ) ‘( 1 2 3) )  ( ( a b ) ( 1 2 3) )


- Reconocedores de objetos

1) ATOM predicado que verifica si su argumento es un átomo

2) SYMBOLP predicado que verifica si su argumento es un átomo no numérico

3) NUMBERP predicado que verifica si su argumento es un átomo numérico

4) LISTP predicadoque verifica si su argumento es una lista

5) NULL predicado que verifica si su argumento es la lista nula

6) LENGTH cuenta el número de elementos del nivel superior que hay en la lista


- Funciones aritméticas : + , - , * , / , expt (potencia) , rem (resto) , sqrt (raiz cuad)

- Funciones booleanas : AND , OR , NOT

- Funciones relacionales:...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Apunte Lisp
  • Lisp
  • lisp
  • lisp
  • Lisp
  • lisp dicertacion
  • programación Lisp
  • Examen LISP

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS