PDF de programación - Manual de Referencia Rápida de LISP

Imágen de pdf Manual de Referencia Rápida de LISP

Manual de Referencia Rápida de LISPgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 29 de Enero del 2018)
669 visualizaciones desde el 29 de Enero del 2018
282,4 KB
34 paginas
Creado hace 22a (28/06/2001)
Universidad de Concepción

Facultad de Ingeniería

Departamento de Ingeniería

Informática



Y Ciencias de la Computación

MANUAL DE REFERENCIA
MANUAL DE REFERENCIA
MANUAL DE REFERENCIA
MANUAL DE REFERENCIA

RAPIDA DE LISP
RAPIDA DE LISP
RAPIDA DE LISP
RAPIDA DE LISP

Rolando Burgos Cárdenas
Rolando Burgos Cárdenas
Rolando Burgos Cárdenas
Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/

e-mail: [email protected]






























Rola


Barrio Universitario, Junio de 1997

Manual de Referencia Rápida de LISP

Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/ e-mail:[email protected]

INDICE

INTRODUCCION

1.1 ATOMOS
1.2 LISTAS

COMANDOS FUNDAMENTALES

1. QUOTE
2. CAR
3. CDR
4. CONS
5. ATOM
6. EQ
7. NULL

ESCRITURA DE PROGRAMAS EN LISP

DATOS ELEMENTALES: VALORES Y TIPOS
FUNCIONES EN LISP
NOMBRES, VARIABLES Y DECLARACIONES
ARRAYS Y OTRAS ESTRUCTURAS DE DATOS
ARRAYS
LISTA DE PROPIEDADES
FUNCIONES BÁSICAS
FUNCIONES ARITMÉTICAS Y ASIGNACIÓN DE VALOR
COMILLA (') Y EVALUACIÓN
FUNCIONES DE MANIPULACIÓN DE LISTAS
ESTRUCTURAS DE CONTROL
EXPRESIONES CONDICIONALES
ITERACIÓN
CRITERIOS DE ENTRADA-SALIDA
SUBPROGRAMAS, FUNCIONES Y BIBLIOTECAS
FUNCIONES, VARIABLES LOCALES Y LA CARACTERISTICA PROGRAM
OTRAS CARACTERISTICAS
DEFINICIÓN Y EXPANSIÓN DE MACROS
EVAL, MAPCAR Y AAPLY

UN EJEMPLO DE APLICACIÓN DE LISP

PROGRAMA

2

2
2

4

4
5
5
6
6
6
7

8

9
10
11
12
12
12
14
14
15
16
19
20
21
23
24
26
28
28
29

31

32

Rola


Página 1



Manual de Referencia Rápida de LISP

Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/ e-mail:[email protected]



INTRODUCCION







LISP es un lenguaje diseñado para la manipulación de
fórmulas simbólicas. Más adelante, nació su aplicación a la inteligencia
artificial. La principal característica de LISP es su habilidad de
expresar algoritmos recursivos que manipulen estructuras de datos
dinámicos.


En LISP existen dos tipos básicos de palabras, los
átomos y las listas. Todas las estructuras definidas posteriormente son
basadas en estas palabras.







1.1 Atomos

Los átomos pueden ser palabras, tal como CASA, SACA,
ATOMO, etc. o cualquier disparate como EDSDS, DFKM454, etc. En general,
un átomo en LISP puede ser cualquier combinación de las 26 letras del
alfabeto (excluyendo obviamente la “ñ”) en conjunto con los 10 dígitos.
Al igual que en otros sistemas, no son átomos aquellas combinaciones que
comienzan con dígitos.

Ejemplos de átomos









Hola
Casa
Mientras
Uno34
F4fg5


Ejemplos de No átomos


5456dgfv
Ab cd

%bc
A5.)



Comienza con dígito.
Incluye un espacio entre
medio.
No comienza con una letra.
Incluye caracteres que no
son ni letras ni dígitos.





1.2 LISTAS


El segundo tipo de palabras con las que trabaja LISP
son las listas. Una lista es puede ser una secuencia de átomos separados
por un espacio y encerrados por paréntesis redondos, incluyendo la
posibilidad de que una lista contenga una sublista que cumple con las
mismas características.

EJEMPLOS







(ESTA ES UNA LISTA)
(ESTALISTAESDISTINTAALAANTERIOR)
(ESTA LISTA (TAMBIEN) ES DISTINTA)
((ESTA ES OTRA) (POSIBILIDAD DE LISTA))

Rola


Página 2



Manual de Referencia Rápida de LISP

Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/ e-mail:[email protected]





En adelante, definiremos TÉRMINO de una lista como un




elemento de una lista, ya sea un átomo o una sublista.



Así, lista quedaría definida como la secuencia:





(término1 término2 ..... términok)

Donde K es el número de elementos de la lista.








EJEMPLOS

NÚMERO DE TÉRMINOS TÉRMINOS
LISTA
(HOLA)
1
(ESTA ES UNA LISTA) 4
((AB T56) HOLA ())
3


paréntesis, en cambio, un átomo no.

• (LISTA) es una lista.
• ATOMO es un átomo.






HOLA
ESTA, ES, UNA, LISTA
(AB T56), HOLA, ()

En LISP, una lista se reconoce porque va entre



¡ IMPORTANTE !



NO OLVIDAR NUNCA DE REVISAR QUE LOS PARENTESIS ESTEN BIEN



Rola


Página 3



Manual de Referencia Rápida de LISP

Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/ e-mail:[email protected]

COMANDOS FUNDAMENTALES

QUOTE

CAR

CDR



CONS



ATOM

EQ

NULL

¡ IMPORTANTE !



SIEMPRE REVISAR QUE LAS FUNCIONES RECIBAN EL NÚMERO CORRECTO DE



ARGUMENTOS



: QUOTE

: Un término cualquiera.
: El argumento.

1. QUOTE

FUNCION
NUMERO DE ARGUMENTOS : 1
ARGUMENTOS
RETORNA

EJEMPLOS

OPERACIÓN
(QUOTE(ESTA ES UNA PRUEBA))
(QUOTE((ESTA)(ES UNA)PRUEBA))
(QUOTE HOLA)
(QUOTE(())


Notar que QUOTE devuelve lo mismo que recibe;
aparentemente esto no tiene mucho sentido, no obstante, la utilidad de
este comando aparece cuando se utiliza, por ejemplo, el comando CAR entre
paréntesis, por ejemplo:


RESULTADO
(ESTA ES UNA PRUEBA)
((ESTA)(ES UNA)PRUEBA)
HOLA
()





(CAR(A B C))





En este caso, CAR buscará el primer elemento de la
lista que genere la función A, pero como A no es una función (a menos que
se defina como tal) generará un error. La sentencia correcta sería:


















(CAR(QUOTE(A B C))

Un error común es escribir algo así:

(CAR(QUOTE ERROR))


Ya que en este caso QUOTE retorna el átomo ERROR, y CAR

debe recibir como argumento una lista (ver definición siguiente).

Rola


Página 4



Manual de Referencia Rápida de LISP

Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/ e-mail:[email protected]

: CAR

2. CAR

FUNCION
NUMERO DE ARGUMENTOS : 1
ARGUMENTOS
RETORNA

EJEMPLOS

OPERACIÓN
(CAR(QUOTE((ESTA) ES UNA
PRUEBA)))
(CAR(QUOTE((ESTA ES UNA
PRUEBA))))
(CAR (QUOTE(()(ESTA ES UNA
PRUEBA))))
(CAR(QUOTE (ESTA ES UNA
PRUEBA)))





: Lista no vacía.
: El primer término de la lista.

RESULTADO
(ESTA)

(ESTA ES UNA PRUEBA)

()

(ESTA ES UNA PRUEBA)

Un error común que se comete es algo como lo siguiente:

CAR ((ESTO ES)(UN ERROR))












El primer paréntesis es para indicar que se
incluirá el argumento de CAR, lo que no identifica a una lista, luego, en
el argumento van dos listas en vez de una, que serían ESTO ES y UN ERROR.
Esto se corrige haciendo la llamada:


CAR(((ESTO NO ES)(UN ERROR)))




Generalizando tenemos que cualquier comando que trabaje con
una o más listas como argumento debe encerrarlas entre paréntesis, no así
con los átomos (ver la aplicación del comando QUOTE).
3. CDR

FUNCION
NUMERO DE ARGUMENTOS : 1
ARGUMENTOS
RETORNA

: CDR

: Lista no vacía.
: El resto de la lista que queda
después de borrar el primer
término.

RESULTADO


EJEMPLOS
OPERACIÓN
(CDR(QUOTE(ESTA ES UNA PRUEBA))) (ES UNA PRUEBA)
(CDR(QUOTE((ESTA ES)UNA
PRUEBA)))
(CDR(QUOTE((ESTA ES UNA
PRUEBA))))
(CDR(QUOTE(()(ESTA ES UNA
PRUEBA))))


(UNA PRUEBA)

()





((ESTA ES UNA PRUEBA))

Las restricciones para CDR son iguales que para CAR.

Rola


Página 5



Manual de Referencia Rápida de LISP

Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/ e-mail:[email protected]

4. CONS

FUNCION
NUMERO DE ARGUMENTOS : 2
ARGUMENTOS

: CONS

: 1. Cualquier término; 2. Una

RETORNA

Lista cualquiera.

: Una lista, tal que su CAR es el
primer argumento, y su CDR es
el segundo argumento.

ES)QUOTE(UNA

RESULTADO
((ESTA ES)UNA PRUEBA)

(ESTA)

: Dos términos.
: T si ambos átomos son iguales;

NIL en otro caso.


EJEMPLOS

OPERACIÓN
EQ(HOLA HOLA)
EQ(HOLA B)
(EQ(QUOTE HOLA)(QUOTE HOLA))
(EQ(QUOTE G)(QUOTE HOLA))

RESULTADO
T
NIL
T
NIL

Rola


Página 6




EJEMPLOS

OPERACIÓN
(CONS(QUOTE(ESTA
PRUEBA)))
(CONS(QUOTE ESTA)(QUOTE()))

5. ATOM

FUNCION
NUMERO DE ARGUMENTOS : 1
ARGUMENTOS
RETORNA

: ATOM


EJEMPLOS

OPERACIÓN
(ATOM(QUOTE ABC54))
(ATOM(QUOTE(UN EJEMPLO)))
ATOM(ABC54)
ATOM(ESTO ES UN EJEMPLO)

6. EQ

FUNCION
NUMERO DE ARGUMENTOS : 2
ARGUMENTOS
RETORNA

: EQ

: Cualquier término.
: T si el argumento es un átomo;

NIL en otro caso.

RESULTADO
T
NIL
T
NIL

Manual de Referencia Rápida de LISP

Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/ e-mail:[email protected]


7. NULL

FUNCION
NUMERO DE ARGUMENTOS : 1
ARGUMENTOS
RETORNA

: NULL

: Cualquier término.
: T si el argumento es una lista

vacía [()]; NIL en otro caso.


EJEMPLOS

OPERACIÓN
NULL(())
NULL((()))
NULL(ESTA ES UNA PRUEBA)
(NULL(QUOTE()))


RESULTADO
T
NIL
NIL
T

Rola


Página 7



Manual de Referencia Rápida de LISP

Rolando Burgos Cárdenas

http://www.ing.udec.cl/~rburgosc/ e-mail:[email protected]

ESCRITURA DE PROGRAMAS EN LISP



Un

normalmente
interpretativa e interactivamente. En su forma más sencilla, un programa
o una función se representa como una expresión completamente puesta
entre paréntesis con todos los operadores en la forma prefija. Todas las
variables tienen valores átomos o listas.

programa

ejecuta

en

LISP

se

El programa que se muestra a continuación es un
programa en LISP que calcula y visualiza la media de una lista de números
de entrada. (Aunque este problema concreto es la antítesis de los
problemas a los que se aplica normalmente el LISP, lo usaremos para
ilustrar la sintaxis y desarrollar una base para la enseñanza del
lenguaje.) Por ejemplo, si la entrada es la lista:

(85.5 87.5 89.5 91.5)

Entonces el resultado presentado será el valor 88.5. La varia
  • Links de descarga
http://lwp-l.com/pdf8517

Comentarios de: Manual de Referencia Rápida de 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