Lo mejor es descargar una implementación del ANSI Common Lisp. En el siguiente enlace podremos seleccionar un ejecutable adecuado para nuestro Sistema Operativo:
http://clisp.cons.org/ Seleccionar SourceForge download.
La versión de Clisp que me he bajado es la 2.42. Ocupa algo menos que 8 Mbytes.
Descomprimimos el contenido y ejecutamos clisp.exe
El interprete nos contestará con el prompt:
>
Tipos de datos en Lisp:
Átomos: símbolos y números. Por ejemplo: 5, 6, a, persona, aula_5
Listas. Por ejemplo: (5 a 7 5)
Como separadores se permiten el espacio y el tabulador.
Las expresiones Lisp se evalúan en el momento y se devuelven un resultado.
Los números se evalúan a si mismo.
Por lo tanto >5 devuelve 5.
Las funciones son de 2 tipos: primitivas de Lisp o las definidas por el usuario.
La notación siempre es prefijo. Primero se indica la función y luego se pasan los argumentos.
(funcion arg1 arg2
Evalación en Lisp:
Cuando Lisp detecta un paréntesis izquierdo espera encontrar un nombre de función. Si no es así devuelve un error.
Devuelve 800.
(* 3 4)
Devuelve 12.
Variables:
Setf es una función primitiva especial.
>(setf
Si no hay error se asigna el valor de la expresión al símbolo.
Además Lisp devuelve el valor de la expresión.
>(setf a 5)
Devuelve 5.
Setf permite múltiples parejas:
>(setf var1 8
var2 15
var3 5000)
En un caso así devuelve el último valor: 5000.
Evaluación de variables:
>Var2
Devuelve 15.
Quote es otra función especial.
Consigue que las expresiones no se evalúen.
(quote expresion
(quote Carlos)
Devuelve Carlos pero sin evaluar.
>(setf var1 (quote a))
Devuelve a.
> var1
Devuelve a.
FUNCIONES DE SELECCIÓN
(first lista
Devuelve el primer elemento de la lista.
(rest
Devuelve la lista quitándole el primer elemento.
(nth
Selecciona el elemento de la lista especificado por el número.
(nth 1 (quote (a (b c) d e )))
Devuelve (b c)
(nthcdr
Devuelve la lista que queda al eliminar por delante tantos elementos como indica el entero.
(last lista)
Devuelve la lista que contiene al último elemento.
(butlast lista
Coge toda la lista menos el último elemento.
En lugar de quote se puede sustituir por el carácter reservado comilla: ‘.
(quote xxxx) equivale a ‘xxxx
Bueno, ya está bien por hoy.Mañana la segunda lección y el planteamiento del primer problema típico de la asignatura "Inteligencia Artificial".