2009-11-11 17 views
15

Clojure me ha presentado el concepto de sintaxis de Lisp, y estoy interesado, pero es un dolor lograr que Clojure repl configure y lo use en diferentes máquinas. ¿Qué otros recursos hay disponibles para realizar pruebas sobre la marcha y jugar con la sintaxis de Lisp?¿Maneras fáciles de probar y probar la sintaxis de Lisp?

Imagino algo así como un sitio web donde puede ingresar un código rudimentario, o un complemento de navegador, o incluso solo una aplicación independiente que lo guía a través de Lisp (algo que se ejecuta en Linux/Ubuntu).

No he podido encontrar algo así para comenzar de una manera simple/accesible.

Respuesta

11

El SISC Online REPL es exactamente lo que necesita. Acepta la sintaxis Scheme, que es una variante de Lisp.

Para una aplicación independiente me gusta PLT Scheme porque parece funcionar igual en todas las plataformas que he probado. Anteriormente estaba usando MIT Scheme en Ubuntu, pero decidí cambiarme cuando compré una máquina nueva con Vista de 64 bits instalada.

+0

Oh, eso es tan completamente rock! ¡Increíble! –

+0

Hmmm, el applet java que se ejecuta simplemente no funciona para mí. Parece el tipo de cosa que estaba buscando, pero en realidad no funciona en FF o Chrome. Lástima, tendré que mirar alrededor para ver si hay una solución para que funcione. – Kzqai

+1

@Tchalvak: raro. Está trabajando en FF en Vista para mí en este momento. –

5

He usado LispBox en el pasado. Fácil de configurar y poner en marcha, pero tengo que admitir que Emacs es una segunda naturaleza para mí. Si no está familiarizado con eso, puede usar otro editor, pero intimar con Emacs lo ayudará a vivir cómodamente en Lispville.

+0

Sí, Emacs es uno de los obstáculos del proceso. Si me entran dudas, entraré en emacs, pero no quiero perder el tiempo jugando con emacs antes de lidiar con el propio ceceo. pruébalo. – Kzqai

+1

Cuando decidí aprender Lisp hace un tiempo, me di cuenta de que necesitaba conocer a Emacs. Terminé aprendiendo Emacs, y después de pasar tanto tiempo en él, nunca encontré el tiempo para aprender Lisp. .. –

1

no voy a editar código Lisp sin un editor que hace lo Emacs hará con la siguiente configuración:

(define-key lisp-mode-shared-map "[" 'insert-parentheses) 
(define-key lisp-mode-shared-map "]" 'move-past-close-and-reindent) 

Los ex inserciones paréntesis equilibrados. Si le da un argumento de prefijo numérico, inserta esos muchos pares anidados. Por defecto, inserta uno. Si tiene una región de texto marcada, encierra esa región en el par insertado más interno. Eso significa que nunca abrirá un paréntesis que no esté cerrado.

Esto último es más difícil de explicar, ya que se usa con menos frecuencia. Es más un comando de navegación que un comando de inserción. Confirma que ha terminado de editar el formulario actual y mueve el cursor hacia arriba, hacia afuera y hacia atrás, preparándose para la siguiente inserción probable.

Con estas claves vinculadas, ya no es necesario utilizar la tecla Mayús para acceder a los paréntesis. Además, esto deja las claves entre paréntesis unidas de forma normal, para cuando se requiere la reparación de sexp o un carácter de paréntesis literal. Robé las llaves de soporte porque se usan con poca frecuencia en Emacs Lisp y Common Lisp. Los caracteres de paréntesis siguen siendo accesibles con las asociaciones de teclas meta:

(defmacro make-key-inserter (def) 
    "Substitute for `self-insert-command'." 
    `(lambda (arg) 
    (interactive "*P") 
    (insert-char ,def (prefix-numeric-value arg)))) 

(define-key lisp-mode-shared-map "\M-[" (make-key-inserter ?\[)) 
(define-key lisp-mode-shared-map "\M-]" (make-key-inserter ?\])) 

No es imprescindible el uso de Emacs, pero no se conforman con menos con otro editor que no se puede al menos igualar esta capacidad. También hay toda una familia de comandos para navegar y manipular el árbol sexp como un árbol. Comprender por qué es valioso requerirá que busque algo por un tiempo hasta que deje de ver la sintaxis y comience a ver el árbol.

+0

Básicamente mi problema en este momento es que necesito entrar en el lenguaje/la sintaxis. Puedo ver los beneficios de involucrarme con Emacs una vez que estoy muy entusiasmado con el lisp en general, pero tengo que aprender/configurar/he instalado emacs es un montón de sobrecarga en el camino. – Kzqai

+0

No se puede negar que la configuración de Emacs es un proyecto. Realmente mudarse es un estilo de vida completo. Sin embargo, asegúrese de entender eso si prueba Lisp con un editor muy básico y decide que no te gusta, bien puede deberse al editor poco útil con el que te has ensillado. No te rindas tan fácilmente. Este es el problema de la gallina y el huevo con facilidad en Lisp. Sin embargo, cuando se enfrente a Emacs, incluso si decide que no quiere volver a tocar Lisp, aún habrá aprendido cómo usar un fantástico editor que le servirá bien para la mayoría de sus necesidades relacionadas con el texto. – seh

+0

En este momento, programo efectivamente en php con la ventaja de solo resaltar la sintaxis. No espero necesitar mucho más (tal vez autodetección) de un editor de lisp. Al menos al principio. Aún así, tendré presente esta entrada para cosas potenciales después. – Kzqai

8

A riesgo de perder todos de mis puntos de reputación, intente newlisp.

+0

Instalador estándar, funciona en Mac/Windows/Linux, listo para scripting. ¿Que es no gustar? – mcandre

+0

Es diferente de la sintaxis de lisp común. No es una solución verdadera. – Shmukers

1

Dado que está utilizando Ubuntu, simplemente instalaría algunos de los paquetes y los probaría.

Common Lisp: apt-get install clisp
Esquema: apt-get install drscheme

Estas no son las únicas implementaciones envasados, pero tal vez el más fácil para empezar a utilizar. Podrás jugar en REPL y también ejecutar tus propios scripts a través del intérprete.

2

Para aprender Lisp el LispWorks edición personal está bien: LispWorks downloads. Hay versiones para Mac OS X, Windows, Linux y FreeBSD. Todos tienen las mismas capacidades de interfaz de usuario y esto incluye un editor y un oyente, además de muchas otras herramientas. En Linux y FreeBSD actualmente (LispWorks 5) usa X11/Motif para la GUI; esto cambiará en una versión futura (LispWorks 6) a GTK. Entonces, para ejecutarlo ahora bajo Linux, necesita tener instalada la Motif lib. Aparte de eso, usarlo es relativamente indoloro. Existen algunas restricciones (solo 5 horas de tiempo de ejecución, luego debe guardar y reiniciar, ...) y la versión completa es comercial. Pero para aprender algunos conceptos básicos de Lisp, es bastante bueno.

1

BioBike proporciona un evaluador completa Common Lisp a través de la web (con extras como un sistema de representación del conocimiento, bioinformática, y un langauge visual alternativa también).

5

Hoy en día, no es difícil acceder a Clojure REPL.

  1. Ve a http://build.clojure.org/ y descarga clojure.jar.
  2. Instalar una JVM.
  3. java -jar clojure.jar

Esto debería funcionar en cualquier máquina que tenga una máquina virtual Java instalada.

Para más diversión, instale rlwrap y use rlwrap java -jar clojure.

+0

Hah, me gustaría verte aquí. Tus publicaciones en el blog son parte de lo que me hizo pensar en entrar en Clojure. – Kzqai

+0

*** piensa en lo que implica entrar en Clojure. – Kzqai

+0

¡Impresionante! Espero que te quedes con él, Clojure es divertido. –

1

Si solo quieres jugar con LISP, de forma interactiva, rápidamente, GNU Emacs tiene incorporado un intérprete LISP y escucha en el buffer *scratch*. Escriba una expresión S, coloque inmediatamente después de ella, y luego presione Ctrl-J para evaluarlo. O <ESC>: pondrá un aviso Eval: en el minibúfer, aceptará una expresión S y la evaluará.

Puede definir funciones, usando defun, y probar cosas de esa manera. Usted tiene acceso a ALL de las funciones incorporadas de GNU Emacs, y todo lo que haya cargado. Si desea mantener las cosas, puede ponerlas en su archivo .emacs.

2

codepad.org es una forma sencilla y sencilla de ingresar y ejecutar código en línea (en muchos idiomas diferentes, incluido Scheme). Lo uso todo el tiempo para probar fragmentos de código para usar en respuestas de SO.

+0

Me gusta, ideal para muchas pequeñas pruebas de idioma. – Kzqai

0

https://github.com/fogus/himera
fue muy fácil de instalar en una caja virtual https://www.nitrous.io. Hace una buena interfaz web.

Descargando y ejecutando clojure-1.6.0.jar en mi caja de Windows (XP) era tan fácil como usar esta secuencia de comandos para ejecutar el REPL:

java -cp clojure-1.6.0.jar clojure.main 
Cuestiones relacionadas