¿Existe un REPL de esquema de equilibrio para * nix?

Me gustaría una línea de comandos (¡debe ser una línea de comandos!) Interpretar el esquema de lectura-evaluación-impresión-bucle. Pero específicamente, me gustaría un intérprete que pueda al menos resaltar los paréntesis, y tal vez incluso mantener un historial como los programas habilitados para lectura de GNU. Todo esto a nivel REPL.

¿Existe esto? ¿Es siquiera posible? ¿Tengo que piratear esto en algún REPL de código abierto? ¿Soy malo en la computadora? ¿Debería siquiera molestarme?

Revisé otras preguntas para esto, pero no he encontrado lo que estoy buscando. He probado Racket y mzscheme, pero no parece hacer lo que quiero. Por ahora estoy usando mit-esquema, pero esa característica de equilibrio (muy parecida a cualquier programa que usaron en las conferencias del SICP) sería prácticamente todo lo que podría desear de él.

preguntado el 27 de agosto de 11 a las 21:08

Pro-tip para usar cualquier REPL (no solo Scheme REPLs) es una pequeña utilidad llamada rlwrap. Debería poder instalarlo en la mayoría de los sistemas * nix. Llámalo como rlwrap scheme y ajustará la entrada al REPL con readline, dándote historial, una edición más agradable, etc. Invaluable si el REPL es realmente básico como el de Clojure. No creo que esto responda específicamente a su necesidad, por lo que no lo hice una respuesta, pero podría ser útil en general. Además, creo que puede comenzar la mayoría de los esquemas como inferior-lisps en Emacs, lo que le da mucho más, pero no iré tan lejos como para presionar eso :) -

@spacemanaki: ¿rlwrap admite el modo de edición vi? Eso es algo que yo <3 acerca de readline (y libedit). -

Buena pregunta, no lo sé. Una búsqueda rápida arroja algunos resultados probables, pero no sería una buena persona para probarlo, no he usado el modo vi de readline en mucho tiempo, así que no podría decirte si es comparable. -

1 Respuestas

Ambos Raqueta (con soporte readline cargado; ver más abajo) y Esquema Chez hará esto. :-) Así será Astucia, pero doblará formularios de varias líneas en una sola línea (a diferencia de Racket / Chez).


Para habilitar la combinación de soportes para raqueta, agregue esta línea a su ~/.racketrc:

(#%require readline/rep)

y esta linea a tu ~/.inputrc:

set blink-matching-paren on

Respondido 29 ago 11, 20:08

En realidad es set blink-matching-paren on. No 's'. ¡Gracias! - eddieantonio

Chez también le aplicará sangría en el REPL, y eso es realmente bueno. - JasonFruit

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.