Lisp/Scheme interpreter without Emacs?

2019-03-09 04:12发布

问题:

I've been wanting to teach myself Lisp for a while. However, all the interpreters of which I've heard involve some flavor of emacs. Are there any command line interpreters, such that I could type this into the command line:

lispinterpret sourcefile.lisp

just like I can run perl or python.

While I'd also like to become more familiar with Emacs (if only not to be frustrated when I work with somebody who uses Emacs), I'd rather decouple learning Emacs from learning Lisp.

Edit: I actually want to follow SICP which uses Scheme, so an answer about Scheme would be more useful. I'm just not that familiar with the differences.

回答1:

You could also try DrScheme, which whilst not exactly a standalone interpreter, isn't emacs :)

It's basically a simple IDE that has an area to type in code that can be executed as a file, and then another area that is the running interpreter that you can interact with.

(Also, find the UC Berkeley CS61A podcasts and listen to them, as well as reading SICP)



回答2:

It looks like Steel Bank Common Lisp (SBCL) also caters to what you want:

http://www.sbcl.org/manual/#Shebang-Scripts

SBCL is both top rate and open source.



回答3:

Checkout CLISP wiki-link that ie. was used by Paul Graham

Direct link



回答4:

I often write lisp shell scripts which start with this line:

#!/usr/bin/clisp

Then you don't even need to type "lispinterpret" on the command-line. Just mark the script executable and run it directly.



回答5:

Most scheme interpreters that I am familiar with can be run from the command line. (Much of the list below is extracted from the comparative table at Alexey Radul's Scheme Implementation Choices page. There is a more extensive list at schemewiki but that page does not immediately provide command-line invocation syntax.)

Here's how you run a number of implementations at the command line:

  • Chez Scheme: scheme, petite

  • MIT Scheme: mit-scheme

  • Scheme 48: scheme48

  • RScheme: rs

  • Racket: racket (But I recommend trying the DrRacket IDE, especially for beginners.)

  • Guile: guile

  • Bigloo: bigloo

  • Chicken: csi

  • Gambit: gsi

  • Gauche: gosh

  • IronScheme: IronScheme.Console

  • Kawa: kawa, java kawa.repl

  • Larceny: larceny

  • SCM: scm



回答6:

If you are looking for Scheme to work with the SICP, take a look at MIT/GNU Scheme

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

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



回答7:

The most widely used IDE for Common Lisp, particularly in the free software subset of the community, is in fact SLIME, which runs on Emacs. You can use whatever CL compiler you prefer and invoke Lisp source files the way you describe, but if you do that, you won't be taking advantage of many of Lisps dynamic features that are so incredibly useful while developing your application.

I suggest you take a look at this SLIME demonstration video to see what I mean, even though it might be a bit outdated at this point.

If the problem is that you (think you) don't like Emacs, I seriously suggest you try to learn it. Seriously. No, really, I mean that. However, there are alternatives, such as the IDEs provided by commercial Lisp implementations such as Allegro and Lispworks (free trials available), or an Eclipse plug-in called Cusp.



回答8:

Did you try Allegro CL from http://www.franz.com/?



回答9:

@Nathan: I've upmodded the Common Lisp links, because you asked about Lisp (especially with reference to Emacs Lisp). However, Common Lisp is very different from Scheme. A program written for one is unlikely to run on the other.

As you mentioned, SICP is for learning Scheme, not Lisp (or at least, not Common Lisp and not Emacs Lisp). There are some overlap in principles, however you can't simply cut and paste code from SICP and expect it to run on any Common Lisp or Emacs Lisp system. :-)



回答10:

No "interpreter" requires emacs.

Also, emacs can run elisp in a headless manner.



回答11:

It seems like scheme shell is suitable for your purpose. Take a look at http://www.scsh.net/index.html



回答12:

Another good dialect of lisp is cmucl. They used to love to brag about being the "fastest" lisp.



标签: lisp scheme