LISP - Estructura del programa
Las expresiones LISP se denominan expresiones simbólicas o expresiones-s. Las expresiones-s se componen de tres objetos válidos, átomos, listas y cadenas.
Cualquier expresión-s es un programa válido.
Los programas LISP se ejecutan en un interpreter o como compiled code.
El intérprete verifica el código fuente en un ciclo repetido, que también se denomina ciclo de lectura-evaluación-impresión (REPL). Lee el código del programa, lo evalúa e imprime los valores devueltos por el programa.
Un programa simple
Escribamos una expresión-s para encontrar la suma de tres números 7, 9 y 11. Para hacer esto, podemos escribir en la indicación del intérprete.
(+ 7 9 11)
LISP devuelve el resultado:
27
Si desea ejecutar el mismo programa que un código compilado, cree un archivo de código fuente LISP llamado myprog.lisp y escriba el siguiente código en él.
(write (+ 7 9 11))
Cuando hace clic en el botón Ejecutar, o escribe Ctrl + E, LISP lo ejecuta inmediatamente y el resultado devuelto es:
27
LISP utiliza la notación de prefijo
Es posible que haya notado que LISP usa prefix notation.
En el programa anterior, el símbolo + funciona como el nombre de la función para el proceso de suma de los números.
En notación de prefijo, los operadores se escriben antes de sus operandos. Por ejemplo, la expresión,
a * ( b + c ) / d
se escribirá como -
(/ (* a (+ b c) ) d)
Tomemos otro ejemplo, escribamos un código para convertir la temperatura Fahrenheit de 60 o F a la escala centígrada -
La expresión matemática para esta conversión será:
(60 * 9 / 5) + 32
Cree un archivo de código fuente llamado main.lisp y escriba el siguiente código en él.
(write(+ (* (/ 9 5) 60) 32))
Cuando hace clic en el botón Ejecutar, o escribe Ctrl + E, LISP lo ejecuta inmediatamente y el resultado devuelto es -
140
Evaluación de programas LISP
La evaluación de los programas LISP tiene dos partes:
Traducción del texto del programa en objetos Lisp por un programa lector
Implementación de la semántica del lenguaje en términos de estos objetos por un programa evaluador
El proceso de evaluación toma los siguientes pasos:
El lector traduce las cadenas de caracteres a objetos LISP o s-expressions.
El evaluador define la sintaxis de Lisp formsque se construyen a partir de expresiones-s. Este segundo nivel de evaluación define una sintaxis que determina qués-expressions son formularios LISP.
El evaluador funciona como una función que toma una forma LISP válida como argumento y devuelve un valor. Esta es la razón por la que ponemos la expresión LISP entre paréntesis, porque estamos enviando la expresión / forma completa al evaluador como argumentos.
El programa 'Hola mundo'
Aprender un nuevo lenguaje de programación no despega realmente hasta que aprenda a saludar al mundo entero en ese idioma, ¿verdad?
Por lo tanto, cree un nuevo archivo de código fuente llamado main.lisp y escriba el siguiente código en él.
(write-line "Hello World")
(write-line "I am at 'Tutorials Point'! Learning LISP")
Cuando hace clic en el botón Ejecutar, o escribe Ctrl + E, LISP lo ejecuta inmediatamente y el resultado devuelto es:
Hello World
I am at 'Tutorials Point'! Learning LISP