You are on page 1of 9

Manual de Lisp

Lisp es un lenguaje de programacin orientado al


modelado de inteligencia artificial que sirve para crear algoritmos
recursivos para manipular estructuras de datos dinmicas. Para
este tutorial se utilizara el programa Lispworks Personal Edition
5.0.1
Hay dos tipos de datos importantes:
tomos (Valores elementales que no comienzan con
dgitos y no contienen espacio entre letras)
Listas (Secuencia de tomos)
Operaciones aritmticas bsicas
Se realiza una notacin prefija |<operador> <operando1> <operando2>|, en el Lisp se
puede realizar las operaciones aritmticas bsicas manera mltiple. Cabe resaltar que las
operaciones respetan el tipo de dato usado (entero o real) y trabajan con el dato ms especfico
como referencia. Adems de ello se debe recordar que las acciones se realizan de izquierda a
derecha (No es lo mismo (/ 4 2) que (/ 2 4) dado que el primero te sale 2 y el segundo 0.5).
Suma

Resta

Multiplicacin

Divisin

Definicin de variables
Para asignar un valor numrico a una variable se utiliza el comando setq


El comando setf asigna un valor nuevo a uno ya existente, para el ejemplo se usa el comando car
que devuelve el primer valor de lista (Sea complejo o atmico)

Operaciones aritmticas no basicas
La raz cuadrada de un nmero se obtiene mediante la funcin sqrt

Operaciones lgicas
La comparacin se denota como =

Se debe hacer notar que T equivale a verdad y NIL es falso

eq compara si 2 listas son iguales o no

equal compara si dos listas ingresadas son iguales o no

listp verifica si la lista ingresada es un tomo no, si es lista se obtiene un T y si es atomo se obtiene
NIL

atom indica si el valor obtenido es atmico (T) o lista (NIL)

Operaciones sobre listas
cons: Aade un valor al inicio de una lista

list: construye una lista a partir de elementos

car/ first: devuelve el primer valor de una lista

cdr/ rest: devuelve toda la lista menos el primero

last: Devuelve el ltimo elemento de una lista

length: devuelve el tamao de una lista

append: devuelve la concatenacin de dos listas

reverse: muestra los elementos de una lista de forma inversa

Combinaciones de operaciones sobre listas
caar = car(car<lista o atomo>)
Indica el primer elemento del primer elemento de una lista

cadr = car(cdr<lista o atomo>)
Devuelve el carcter que sigue de separar el primer elemento de la lista (devuelve el segundo
elemento)

cdar = cdr(car<lista o atomo>)
Devuelve del primer elemento de una lista, todo menos su primer subelemento

cddr = cdr(cdr<lista o atomo>)
Devuelve el resto de haber separado el primer elemento de una lista dos veces (desde el 3ro hasta
el ltimo)

Funciones lgicas
and: Evalua los elementos y si no hay un NIL devuelve el ultimo valor

or: Evalua si todos los elementos son NIL y si no lo son devuelve el primer elemento

not: devuelve T si va con NIL y NIL para algn valor

Funciones para string
format: Asigna na cadena de texto en la pantalla y usa el argumento t

Para dar formato de siguiente lnea se usa ~%, imprime un carcter ascii con ~A, notacin decimal
con ~D y notacin real con ~F

Funciones
defun: define una funcin a especificar
(defun nombrefuncion(<argumento(s)>) comentarios (cuerpo))

Funciones iterativas
if: condicional con dos alternativas
(if(<condicin>)<consecuencia><alternativa>)

cond: Ejecuta un flujo de control dependiendo si la condicin es cierta o no, utiliza la T como
opcin final por defecto

let: declara variables locales

dotimes: Evala la forma del cuerpo X veces cambiando su ndice de 0 a X-1 y regresando el
resultado

dolist: //
do: Permite asignar varias variables (como LET), hacer pasos de iteracin como uno quiera y
especificar la condicin de terminacin

You might also like