Supongamos que tiene emacs en ejecución y ha comprobado SLIME de CVS y lo ha instalado. Esto debería ser fácil con cualquier distribución de Linux; apt-get install emacs slime
lo hace por mí. (También debe instalar SBCL, la mejor implementación de Common Lisp).
SLIME ya no hace mucho más, por lo que necesita la configuración . La configuración de emacs se realiza en su archivo ~/.emacs
. Visite ese archivo (C-x C-f ~/.emacs)
.Tengo algo como esto, que carga una variedad de golosinas:
(eval-after-load "slime"
'(progn
(setq slime-lisp-implementations
'((sbcl ("/usr/bin/sbcl"))
(ecl ("/usr/bin/ecl"))
(clisp ("/usr/bin/clisp"))))
(slime-setup '(
slime-asdf
slime-autodoc
slime-editing-commands
slime-fancy-inspector
slime-fontifying-fu
slime-fuzzy
slime-indentation
slime-mdot-fu
slime-package-fu
slime-references
slime-repl
slime-sbcl-exts
slime-scratch
slime-xref-browser
))
(slime-autodoc-mode)
(setq slime-complete-symbol*-fancy t)
(setq slime-complete-symbol-function
'slime-fuzzy-complete-symbol)))
(require 'slime)
Si no lo tiene instalado en su BABA "directorio del sitio", podrás también quiere añadir este antes de que esas líneas:
(add-to-list 'load-path "~/elisp/slime/")
(add-to-list 'load-path "~/elisp/slime/contrib")
(Cambiar las rutas de acceso a estos la ubicación correcta, por supuesto.)
la pieza clave es el limo-configuración, esta carga una variedad de módulos opcionales, incluyendo el REPL. (También considero la sangría de fantasía, y autodoc esencial.)
De todos modos, puede cargar esto en sus Emacs en ejecución con M-x eval-buffer
, o poniendo el punto dentro de cada sexp y presionando C-M-x
. (También puede señalar el final de la sexp y presiona C-x C-e
. Hay una variedad de maneras de evaluar Emacs Lisp en Emacs, pero que no es realmente relevante para el aprendizaje de CL.)
En este punto, usted debe ser capaz de escribir M-x slime
y llevarlo a su REPL. Antes de que eso suceda, su ceceo se cargará, SLIME lo hará para que compile Swank (el lado CL de SLIME), y verá que ocurre . Esto solo ocurre una vez, sin embargo, la próxima vez que SLIME se iniciará más rápido .
En REPL, puede escribir los comandos de Common Lisp y ver el resultado de su evaluación. Al presionar TAB para completar algo aparecerá una ventana de de posibles terminaciones; esto es una finalización inteligente, por lo que al escribir algo así como "d-b" aparecerá una lista que contiene "binduring-bind". Muy útil. M-/también completará los símbolos que ya ha escrito en algún lugar dentro de Emacs; otro gran momento ahorrador. (Esto funciona en todas partes en Emacs, por cierto, y se llama "expansión de abreviatura dinámica ")
Anteriormente, dijo que el REPL era aburrido, así que vamos a abrir un archivo real. Presione C-x C-f test.lisp
. Como era de esperar, esto abrirá un buffer editing.lisp, que se creará cuando guarde por primera vez el archivo (C-x C-s
). Este archivo Lisp tiene conocimiento de SLIME, por lo que cualquier cosa que escriba puede validarse fácilmente ejecutando Lisp. Completar ficha, inspección de clase, pruebas interactivas, etc. están disponibles. Por ejemplo, escriba algo como (+ 1 2)
y presione C-x C-e
. Usted verá el resultado, según lo evaluado por la ejecución de Lisp, en la parte inferior de la ventana. Esto le permite probar expresiones individuales al escribir en el archivo.
El siguiente paso es escribir una función completa, tal vez:
(defun my-1+ (x)
(+ x 1))
Puede cargar esta función en el Lisp que se ejecuta en una variedad de formas; Normalmente uso C-M-x
.Ahora puede volver a cambiar a la memoria intermedia REPL (C-x b *slime-repl sbcl*
o similar) y escribir (my-1+ 42)
y ver imprimir el resultado 43
.
Otra forma de llevar las funciones al funcionamiento de Lisp es compilar y cargar todo el archivo con C-c C-k
.
De todos modos, eso es lo básico de usar SLIME y Emacs. Hay obviamente muchas más características disponibles, pero esto debería darle una muestra de la programación de Lisp con SLIME. Una última cosa que mencionaré, Emacs es en gran medida autodocumentado, por lo que si desea obtener más información, Emacs puede ayudarlo. Mientras está en su búfer Lisp, puede escribir C-h m
para obtener una lista completa de comandos que puede utilizar al editar Lisp. Puede hacer clic en en los enlaces para obtener más información sobre cada función.
¡Diviértete!
traté de empezar a trabajar con práctica Common Lisp, utilizando Lispbox, pero no tener una configuración de FreeBSD, y tuve dificultad para intentar ejecutarlo en mi plataforma. Espero que cuando tenga más experiencia, podría volver a intentarlo después de terminar "Gentle Intro". –