2008-08-13 20 views
14

He estado queriendo enseñarme a mí mismo Lisp por un tiempo. Sin embargo, todos los intérpretes de los que he escuchado tienen algún sabor de emacs. ¿Hay algún intérprete de línea de comandos, que yo podría escribir esto en la línea de comandos:intérprete Lisp/Scheme sin Emacs?

lispinterpret sourcefile.lisp

al igual que se puede ejecutar Perl o Python.

Aunque también me gustaría familiarizarme más con Emacs (aunque no me sienta frustrado cuando trabajo con alguien que usa Emacs), prefiero desconectarme aprendiendo Emacs de aprender Lisp.

Editar: De hecho, quiero seguir SICP que utiliza Scheme, por lo que una respuesta sobre Scheme sería más útil. Simplemente no estoy tan familiarizado con las diferencias.

Respuesta

6

Pago y envío CLP wiki-link que es decir. fue utilizado por Paul Graham

directa link

+0

clisp es especialmente bueno para el uso interactivo cuando se compila con el apoyo ncurses (estilo de fiesta para rellenar la ficha) Obtención de la documentación de hyperspec, etc. – dsm

+3

Si con "decir". te refieres a "i.e.": que dice "id est" (en inglés: "eso es"). Creo que quieres decir "p. Ej." (ejempli gratia = por ejemplo). – Svante

1

¿Usted intentó Allegro CL de http://www.franz.com/?

+0

a $ 599? Un poco más para gastar en aprendizaje, ¿no? – crashmstr

+1

@crashmstr: Allegro tiene una versión gratuita de prueba que deben ser totalmente adecuado si quieres aprender ese idioma. – Pillsy

13

También puede probar DrScheme, que aunque no es exactamente un intérprete independiente, no está emacs :)

Es básicamente un IDE simple que tiene un área para escribir código que se puede ejecutar como un archivo, y luego otra área que es el intérprete en funcionamiento con la que puede interactuar.

(También, buscar los podcasts de la Universidad de Berkeley CS61A y escucharlos, así como la lectura SICP)

+1

Si está utilizando PLT con SICP: http://www.neilvandyke.org/sicp-plt/ –

1

@ Nathan: He modificado los enlaces de Common Lisp, porque preguntaste sobre Lisp (especialmente con referencia a Emacs Lisp). Sin embargo, Common Lisp es muy diferente de Scheme. Un programa escrito para uno es poco probable que se ejecute en el otro.

Como mencionaste, SICP es para aprender Scheme, no Lisp (o al menos, Common Lisp y no Emacs Lisp). Hay algunos solapamientos en los principios, sin embargo, no se puede simplemente cortar y pegar código de SICP y esperar que se ejecute en cualquier sistema Common Lisp o Emacs Lisp. :-)

0

Otro buen dialecto de lisp es cmucl. Solían adorar alardear de ser el ceceo "más rápido".

2

El IDE más utilizado para Common Lisp, particularmente en el subconjunto de software libre de la comunidad, es de hecho SLIME, que se ejecuta en Emacs. Puedes usar cualquier compilador CL que prefieras e invocar los archivos fuente Lisp de la manera que describes, pero si lo haces, no aprovecharás muchas de las características dinámicas de Lisps que son increíblemente útiles mientras desarrollas tu aplicación.

Le sugiero que eche un vistazo a este SLIME demonstration video para ver lo que quiero decir, a pesar de que podría estar un poco desactualizado en este punto.

Si el problema es que usted (creo que) no le gusta Emacs, le sugiero seriamente que intente aprenderlo. Seriamente. No, realmente, quiero decir eso. Sin embargo, hay alternativas, como los IDEs provistos por implementaciones comerciales de Lisp como Allegro y Lispworks (pruebas gratuitas disponibles), o un complemento de Eclipse llamado Cusp.

5

A menudo escribir guiones Lisp que comienzan con esta línea:

#/usr/bin/clisp

A continuación, usted ni siquiera tiene que escribir "lispinterpret" en la línea de comandos. Simplemente marque el ejecutable del script y ejecútelo directamente.

1

Ningún "intérprete" requiere emacs.

Además, emacs puede ejecutar elisp sin tener cabeza.

3

Si usted está buscando para el Esquema de trabajar con el SICP, echar un vistazo en el MIT/Esquema GNU

http://groups.csail.mit.edu/mac/projects/scheme/

http://www.gnu.org/software/mit-scheme/index.html

+0

MIT/Esquema GNU utiliza un intérprete, que es más o menos como Emacs. El editor de –

+0

incluido Edwin es como Emacs y el REPL tiene algunos comandos de Emacs como para [interrumpiendo] (http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-user/Interrupting.html# Interrumpir), pero eso no es todo. Con MIT-Scheme, * podría * aprender Scheme sin aprender Emacs. – crashmstr

4

La mayoría de los intérpretes de esquema con los que estoy familiarizado se pueden ejecutar desde la línea de comandos. (Gran parte de la lista de abajo se extrae de la tabla comparativa en la página de Alexey Radul Scheme Implementation Choices. Hay una lista más extensa en schemewiki pero esa página no proporciona inmediatamente sintaxis de invocación de línea de comandos.)

Así es como se ejecuta un número de las implementaciones en la línea de comandos:

+0

A veces estos repls tienen muy mala "edición de línea". Golpear la flecha izquierda y obtener^[[D es horrible. Para esos casos, puede utilizar rlwrap, que envuelve el programa con el soporte de la línea de lectura (ejecutarlo con '' rlwrap ). Su configuración de lectura (archivo ~/.inputrc) tendrá efecto, por lo que incluso puede usar el modo vi de readline si así lo desea. – spelufo