PDF de programación - Manual de Golden Common Lisp

Imágen de pdf Manual de Golden Common Lisp

Manual de Golden Common Lispgráfica de visualizaciones

Actualizado el 16 de Junio del 2017 (Publicado el 19 de Abril del 2017)
901 visualizaciones desde el 19 de Abril del 2017
140,2 KB
48 paginas
Creado hace 21a (22/07/2002)
Manual de Golden Common Lisp

José A. Alonso

Dpto. de Álgebra, Computación, Geometría y Topología

Universidad de Sevilla

Sevilla, 1990

Contenido

1 Introducción

1.2.1 Los átomos
1.2.2 Las listas

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
1.2 Los objetos básicos . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Funcionamiento básico del intérprete . . . . . . . . . . . . . .
1.3.1 Evaluación de los átomos . . . . . . . . . . . . . . . . .
1.3.2 Evaluación de las listas . . . . . . . . . . . . . . . . . .

2 Definición de funciones

2.1 Funciones anónimas . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Funciones con nombres . . . . . . . . . . . . . . . . . . . . . .

3 Predicados

3.1 Valores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Predicados de tipos . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Predicados de igualdad . . . . . . . . . . . . . . . . . . . . . .
3.4 Operadores lógicos
. . . . . . . . . . . . . . . . . . . . . . . .

1
1
1
2
2
2
2
3

4
4
4

5
5
5
6
7

4 Estructuras de control

4.1 Constantes y variables

8
8
. . . . . . . . . . . . . . . . . . . . . .
8
4.1.1 Referencias
. . . . . . . . . . . . . . . . . . . . . . . .
8
4.1.2 Asignaciones . . . . . . . . . . . . . . . . . . . . . . . .
9
4.2
Invocación de funciones . . . . . . . . . . . . . . . . . . . . . .
4.3 Funciones de evaluación . . . . . . . . . . . . . . . . . . . . .
9
4.4 Variables locales . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.5 Condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Iteración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.6
Iteración indefinida . . . . . . . . . . . . . . . . . . . . 12
4.6.1
4.6.2
Iteración general
. . . . . . . . . . . . . . . . . . . . . 12
4.6.3
Iteraciones particulares . . . . . . . . . . . . . . . . . . 14
4.6.4 Funciones de aplicación . . . . . . . . . . . . . . . . . . 15
4.6.5
Iteraciones del tipo PROG . . . . . . . . . . . . . . . . 16

5 Números

18
5.1 Operaciones numéricas . . . . . . . . . . . . . . . . . . . . . . 18
5.2 Comparaciones numéricas
. . . . . . . . . . . . . . . . . . . . 20
5.3 Las funciones trigonométricas y matemáticas . . . . . . . . . . 21

ii

6 Listas

23
6.1 Las funciones de búsqueda en las listas . . . . . . . . . . . . . 23
6.2 Las funciones de construcción de listas
. . . . . . . . . . . . . 25
6.3 Las funciones de modificación física . . . . . . . . . . . . . . . 27
6.4 Listas de asociación (A–listas) . . . . . . . . . . . . . . . . . . 28
6.5 Listas de propiedades (P–listas) . . . . . . . . . . . . . . . . . 29

7 Funciones de lectura y escritura

32
7.1 Funciones de lectura . . . . . . . . . . . . . . . . . . . . . . . 32
7.2 Variables de escritura . . . . . . . . . . . . . . . . . . . . . . . 32
7.3 Funciones de escritura . . . . . . . . . . . . . . . . . . . . . . 33

8 Ficheros

35
8.1 Funciones sobre ficheros
. . . . . . . . . . . . . . . . . . . . . 35
8.2 La función LOAD . . . . . . . . . . . . . . . . . . . . . . . . . 36

9 Ayudas

9.1.1 El rastreador
9.1.2 La ejecución paso–a–paso
9.1.3 Descripción de símbolos

37
9.1 Funciones de ayuda . . . . . . . . . . . . . . . . . . . . . . . . 37
. . . . . . . . . . . . . . . . . . . . . . . 37
. . . . . . . . . . . . . . . . 37
. . . . . . . . . . . . . . . . . 39
9.2 Macro–caracteres . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.3 Teclas definidas . . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.4 Funciones sobre el sistema . . . . . . . . . . . . . . . . . . . . 42

Bibliografía

44

iii

1 Introducción

1.1 Introducción

Para cargar el GOLDEN COMMON LISP se escribe:

C> GCLISP

y el sistema responde:

GOLDEN COMMON LISP, Version 1.01
Copyright (C) 1985 by Gold Hill Computers

; Reading file INIT.LSP
Type Alt-H for Help
Top-Level
*

GCLISP entra en el bucle principal del intérprete que va, indefinidamente
a leer una expresión sobre el terminal, evaluarla e imprimir el valor de esta
evaluación. GCLISP indica que espera la lectura de una expresión imprim-
iendo el carácter * al comienzo de cada línea. El valor de la evaluación de
una expresión se imprime en la línea siguiente. Para salir se escribe (EXIT).
Veamos un ejemplo de sesión con GCLISP:

C> GCLISP

GOLDEN COMMON LISP, Version 1.01
Copyright (C) 1985 by Gold Hill Computers

; Reading file INIT.LSP
Type Alt-H for Help
Top-Level
* (+ 2 3)
5
* (EXIT)
C>

1.2 Los objetos básicos

Los objetos que se usan en Lisp se llaman S–expresiones (por “Symbolic
expressions”).

1

Estos objetos se clasifican en los siguientes tipos:

 números

símbolos
cadenas de caracteres

 átomos

listas

S–expresiones

S–expresión
átomo

Para referirnos a dichos objetos, usaremos las siguientes abreviaturas:
s
a
simb símbolo
número
n
l
lista

1.2.1 Los átomos

Los símbolos
Los símbolos son cadenas continuas de caracteres (conteniendo al menos un
carácter no numérico). Por ejemplo, AGUA, A12, VAR-AUX, + son símbolos.
Los números
GCLISP manipula números enteros sobre 16 bits (permitiendo calcular en el
intervalo [−215 + 1, 215 − 1] , i.e. [-32767, 32767]) y números flotantes sobre
128 bits (permitiendo calcular en el intervalo [-1.0F+38, 1.0F+38]).
Las cadenas de caracteres
Una cadena de caracteres es una sucesión de caracteres, con o sin huecos,
que comienza y termina por dobles comillas. Por ejemplo, "A 1 23" es una
cadena de caracteres.

1.2.2 Las listas

Una lista es una sucesión ordenada, posiblemente vacía, de objetos. Sintácticamente,
se compone de un paréntesis abierto, objetos separados por huecos y un
paréntesis cerrado. Por ejemplo, (a 1 b), (), (a (b (c))) son listas.

1.3 Funcionamiento básico del intérprete

1.3.1 Evaluación de los átomos

El valor de un número es el propio número.
El valor de un símbolo es:

• el número que tenga asignado, si actúa como variable numérica;

2

• la S-expresión que tenga asignada, en caso contrario.

El valor de una cadena de caracteres es la propia cadena.

1.3.2 Evaluación de las listas

Las listas se interpretan como llamadas a funciones. El primer elemento es
el nombre de la función y el resto son los argumentos. Por ejemplo, la lista
(+ 2 3), se interpreta como la función + actuando sobre 2 y 3.

3

2 Definición de funciones

2.1 Funciones anónimas

((LAMBDA (var1...varN) s1...sM) val1...valN)

asocia los valores val1,..., valN a las variables var1,..., varN; evalúa
las expresiones s1,..., sM y devuelve el valor de sM.

((LAMBDA (M N) (+ M N)) 2 3)
(MAPCAR #’(LAMBDA (N) (* 2 N)) ’(1 2 3)) ---> (2 4 6)

---> 5

2.2 Funciones con nombres

(DEFUN simb l s1...sN)

permite definir nuevas funciones.

simb es el nombre de la función definida.

l es la lista de parámetros (argumentos); son variables locales que no
afectan a posibles valores previos, en general. Si no hay argumentos,
es obligatorio poner ().

s1,..., sN son las expresiones que definen el cuerpo de la función.

Devuelve simb.

* (DEFUN CUADRADO (N) (* N N))
CUADRADO
* (CUADRADO 3)
9

4

3 Predicados

3.1 Valores lógicos

su valor es NIL y representa “lo falso”. Puede escribirse como ().

NIL

T

su valor es T y representa “lo verdadero”.

3.2 Predicados de tipos

(NULL s)

devuelve T, si s es NIL y NIL, si no.

(ATOM s)

Devuelve T, si s es un átomo y NIL, si no.

(ATOM 12)
(ATOM ’ABC)
(ATOM "A B")
(ATOM A)
(ATOM ’(A B)) ---> NIL
(ATOM NIL)

---> T
---> T
---> T
---> ERROR

--->

T

(SYMBOLP s)

devuelve T, si s es un símbolo y NIL, si no.

(SYMBOLP 12)
(SYMBOLP ’ABC)
(SYMBOLP "A B")
(SYMBOLP A)
(SYMBOLP ’(A B)) ---> NIL
(SYMBOLP NIL)

---> NIL
---> T
---> NIL
---> ERROR

--->

T

(NUMBERP s)

devuelve T, si s es un número y NIL, si no.

(NUMBERP 123)
(NUMBERP ’A)

---> T
---> NIL

5

(SETQ A 3)
(NUMBERP A)

---> 3
---> T

(CONSP s)

devuelve T, si s es una lista no vacía y NIL, si no.

(CONSP 23)
(CONSP ’(A B)) ---> T
(CONSP ())

---> NIL

---> NIL

(LISTP s)

devuelve T, si s es una lista y NIL, si no.

(LISTP 23)
(LISTP ’(A B)) ---> T
(LISTP ())
---> T

---> NIL

3.3 Predicados de igualdad

(EQ s1 s2)

devuelve T si s1 y s2 son el mismo símbolo y NIL en caso contrario.

---> T
(EQ ’LISP ’LISP)
---> NIL
(EQ ’LISP ’LISA)
---> T
(EQ (CAR ’(A B C)) ’A)
(EQ 3 3.0)
---> NIL
(EQ (CONS ’A ’(B C)) (CONS ’A ’(B C))) ---> NIL

(EQUAL s1 s2)

devuelve T, si s1 y s2 tienen el mismo valor y NIL, si no.

(EQUAL 3 (+ 1 2)) --->

T

6

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

(OR NIL 2 3) ---> 2

(AND s1...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.

(AND 1 2 3)
(AND 1 NIL 3) ---> NIL

---> 3

7

4 Estructuras de control

4.1 Constantes y variables

4.1.1 Referencias

(QUOTE s)

devuelve s (sin evaluar).

(QUOTE (+ 2 3)) ---> (+ 2 3)

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

---> 6
(SET ’X (1+ 5))
X
---> 6
(SET (IF (= 1 2) ’A ’B) 3) ---> 3
A
B

---> ERROR
---> 3

(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 3 Y (+ X 2))
Y

---> 5
---> 5

(MAKUNBOUND simb)

borra el valor asignado a simb.

(SETQ A 3)
A
(MAKUNBOUND ’A)
A

---> 3
---> 3
---> A
---> ERROR: Unbound Variable: A

8

4.2 Invocación de funciones

(APPLY fn l)

devuelve el valor de la función fn actuando sobre los elemen
  • Links de descarga
http://lwp-l.com/pdf3102

Comentarios de: Manual de Golden Common Lisp (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad