May 09
Geiser en emacs: scheme
Hace un tiempo comentabamos los distintos principales dialectos que existen en lisp y la forma de evaluar codigo. Sin embargo hoy nos centraremos en scheme, que en su dia ya explicamos como evaluar lisp. Principalmente se puede hacer de 2 formas, evaluando el buffer o expresiones escritas en el buffer, o bien de forma interactiva. Para evaluar en el buffer directamente podemos hacer: C-x C-e. Sin embargo, si queremos realizarlo de forma interactiva podemos instalar y configurar Geiser.
Primero descargamos Geiser, que no es mas que un wrapper para el compilador o compiladores de scheme:
$ git clone git://git.sv.gnu.org/geiser.git
Tambien debemos instalar el compilador en si mismo, generalmente tenemos 2 variantes, racket y guile. Las diferencias entre estos dos interpretes y compiladores se pueden encontrar en sus web oficiales. En mi caso uso Racket, anteriormente llamado PLT Scheme. La plataforma provee de la implementacion de racket language, incluyendo un sofisticado sistema run-time, diferentes bibliotecas, un compilador JIT, etc. Se provee del entorno llamado DrRacket (anteriormente llamado DrScheme) que esta escrito en racket en si mismo. Para instalar racket o guile hacemos lo siguiente:
# apt-get install racket
o
# apt-get install guile-2.0
Debemos anadir la siguiente configuracion a nuestro .emacs (en mi caso yo uso racket):
(load-file «~/geiser/elisp/geiser.el»)
(setq geiser-racket-binary «/usr/bin/racket»)
Ahora ya podemos lanzar M-x geiser y seleccionar seguidamente racket.
Racket y GNU/Guile
Un ejemplo de la potencia de racket
Probemos algo de codigo de scheme:
Ya lo tenemos listo, ahora ya podemos comenzar a jugar con scheme de manera interactiva dentro de emacs. Existe un listado completo de keybindings para geiser. Sin embargo, podemos emplear el menu que trae emacs para ver y usar los keybindings mas importantes o frecuentes:
Y esto es todo, si quereis realmente jugar y aprender con scheme, podeis comprar posiblemente uno de los mejores, sino el mejor libro para aprender; «The little schemer». Anteriormente ya hablamos de un libro muy avanzado,; el SICP. Pero que realmente es un libro para aprender programacion en si, pero que usa scheme como lenguaje educacional.