Manual Lisp

Páginas: 10 (2304 palabras) Publicado: 25 de abril de 2013
SENTENCIAS DE LOS COMANDOS EN
LISP
1. Introducción
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".
Algunas de las funciones predefinidas de Lisp tienen símbolos
familiares (+ para la suma, * para el producto), pero otras son másexóticas, especialmente dos que sirven precisamente para manipular
listas, descomponiéndolas en sus componentes. Sus nombres ("car" y
"cdr") son un poco extraños, reliquias de tiempos pasados y de la
estructura de los ordenadores de segunda generación, "car" devuelve
la cabeza de una lista y "cdr" su cola o resto.

2. Predicados
2.1 VALORES LÓGICOS
NIL Su valor es NIL y representa “lo falso”.Puede
escribirse como ().
T Su valor es T y representa “lo verdadero”.
2.2 PREDICADOS DE TIPO
(NULL s) Devuelve T, si es NIL y T, si no.
Ejemplos:
1)
SETQ L’ (a b c)  (a b c)
NULL L  NIL
2)
SETQ H’ ()  NILL
NULL H T
(ATOM s) Devuelve T, si s es un átomo y NIL, si no.
Ejemplos:

1) SETQ H’(a a a) (a a a)

ATOM H NIL
2) SETQ K ‘(a)(a)

ATOM KNIL
(NUMBERP s) Devuelve T, sis es un número y NIL, si no.
Ejemplos:
1) SETQ H’ (1 2 3) (1 2 3)
NUMBERP H NIL
NOT (NUMBERP (CAR H)) NIL
2)

SETQ H’ (1 2 3) (4 5 6)
NUMBERP (CAR H) T

(CONSP s) Devuelve T, si s es una lista no vacía y NIL, si
no.
Ejemplos:
1) SETQ H’ ()NIL

CONSP H  NIL
2) SETQ J’ ((a) j l) ((a) j l)

CONSP (CAR J) T
(LISTP s) Devuelve T, si s es una lista y NIL, si no.
1)SETQ K’((2) 3 4) ((2) 3 4)
LISTP K  T
2)SETQ K’ (2 3 4)(2 3 4)
LISTP (CAR K)T
2.3 PREDICADOS DE IGUALDAD
(EQ s1 s2) Devuelve T si s1 y s2 son el mismo símbolo y
NIL en caso contrario.
Ejemplos:
1) EQ (CAR ‘(1 2)) (CAR ‘(1 2))T
2) EQ (REST ‘((1) 2)) (REST ‘((1) 2))NIL

(EQUAL s1 s2) Devuelve T, si s1 y s2 tienen el mismo
valor y NIL, si no.
Ejemplos:
1) EQUAL (- 5 6) (- 10 11)T
2)EQUAL (REST ‘(1 2)) (REST’ (1 2))T

2.4 OPERADORES LÓGICOS
(NOT s) Devuelve T, si s es NIL; NIL, si no.
(OR s1...sN) Evalúa sucesivamente s1,..., sN hasta que
una de dichas expresiones tenga un valor distinto de NIL.
OR devuelve este valor. Si el valor de todas las
expresiones es NIL, entonces OR devuelve NIL.
Ejemplo:
1) OR (+ 5 6) (- 5 6) (* 2 5)11
2) OR (CAR ‘() (+ 8 5)) 13

(ANDs1...sN) Evalúa sucesivamente s1,..., sN hasta que
el valor de una de dichas expresiones sea NIL; en cuyo
caso, AND devuelve NIL. Si el valor de todas las
expresiones es distinto de NIL, entonces AND devuelve el
valor de sN.
Ejemplos:
1) AND (* 8 6) (- 5 3) (/ 8 2)4
2) AND (CAR ‘()) (* 5 3) NIL

3. Estructuras de control
3.1 CONSTANTES Y VARIABLES
3.1.1 REFERENCIAS
(QUOTE s) devuelves (sin evaluar).
QUOTE(- 7 2)  (- 7 2)
QUOTE(* 9 5)  (* 9 5)

3.1.2 ASIGNACIONES

(SET ’simb s) asigna, destruyendo cualquier asignación
previa, el valor de la expresión s al símbolo simb.
Devuelve el valor de s.
(SET 'X (/ 9 (* 3 1)))  3
(SET 'Y 15)  15
(SETQ simb1 ‘s1 simb2 ‘s2 ... simbN ‘sN) es como
SET, pero se permiten asignaciones múltiples y no se
evalúan los simbi.Devuelve el valor de sN.
SETQ viene a ser como SET QUOTE.
(SETQ X’(2 9 (7 3 1)))  (2 9 (7 3 1))
X  (2 9 (7 3 1))
SETQ X'(- 7 2) Y'(/ 9 3)  (/ 9 3)
X  (- 7 2)
Y  (/ 9 3)
(MAKUNBOUND ‘simb) borra el valor asignado a simb.
SET 'A (/ 8 2)

4



A  4
MAKUNBOUND 'a
unbound

 Error: The variable A is

SET ‘B 2  2
B  2
MAKUNBOUND 'b
unbound

 Error: The variable B is

3.2INVOCACION DE FUNCIONES
(APPLY ‘fn ‘l) devuelve el valor de la función fn
actuando sobre los elementos de l como argumentos.
(APPLY ' * '(4 2 3))  24
(APPLY ' / '(7 1 3))  7/3
(FUNCALL fn s1...sN) es lo mismo que (APPLY ‘fn
(LIST s1...sN)).
(FUNCALL '+ 1 2 3)  6

(FUNCALL ' * 4 2 7)  56

3.3 FUNCIONES DE EVALUACION
(EVAL s) devuelve el valor de s.
(EVAL (CONS '+ '(2 3)))  5...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Manual basico Lisp
  • Manual de lisp
  • Manual de Lisp
  • Manual de referéncia rápida de lisp
  • Lisp
  • lisp
  • lisp
  • Lisp

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS