What is the best Scheme or LISP implementation for OS X?


Solution 1

I'd go with Racket. It may not be as fast as SBCL, but it does have excellent libraries and documentation, as well as an integrated environment that's designed to get you developing and running Scheme programs right out of the gate. What I really like about Racket's IDE, DrRacket, is what you don't have to do—you don't have to learn Emacs, you don't have to learn SLIME, you don't have to worry about hunting down third-party libraries, as virtually all libraries meant for Racket can be found in packages. All in all, it really cuts down on the learning curve and allows you to focus on the actual task at hand: writing great code.

Also, it comes with a web server if you want to make Racket-powered websites (which I'm currently looking into).

Solution 2

I did quite a bit of experimenting with this.

Clozure Common Lisp (née Open MCL) is by far the fastest; 25-30 percent faster than the next competitor on my intel Mac Mini.

MIT Scheme works quite nicely on a Mac. I think I eventually compiled it myself, but there are binaries at that site. PLT Scheme is also nice, and possibly a little better integrated into the Mac world. (PLT Scheme is now known as Racket, but I haven't experimented with it after the change.)

Solution 3

For Scheme, DrRacket is awesome (included in Racket).

For Common Lisp, Ready Lisp is great. A single dmg with SBCL, Aquamacs and Slime working out of the box.

From the Web site:

Ready Lisp is a binding together of several popular Common Lisp packages especially for Mac OS X, including: Aquamacs, SBCL and SLIME. Once downloaded, you’ll have a single application bundle which you can double-click — and find yourself in a fully configured Common Lisp REPL.

It’s ideal for OS X users who want to try out the beauty of Common Lisp with a minimum of hassle. It could also be used by teachers to give their Mac students a free, complete Common Lisp environment to take home with them. Requirements

The current version of Ready Lisp is 20090127 and requires Mac OS X 10.5 (Leopard).

It includes the following component software versions:

Aquamacs  1.6
SBCL    1.0.24
SLIME   2009-01-23
CL-FAD  0.6.2
CL-PPCRE    2.0.1
SERIES  2.2.10
CL HyperSpec    7.0
paredit.el  20
redshank.el     1
cldoc.el    1.16

Solution 4

I'm a huge fan of Clojure, SBCL, and Clozure CL. They are all fantastic, but they are also overkill if all you want to do is refresh your Lisping chops. They all require absurd amounts of info hunting, mailing list searching, package installing, irc lurking, etc.

Dr Scheme just installs and runs. I finished the first 3 chapters of SICP four and half years ago using Dr Scheme. Nothing was more profound than defining a Scheme evaluator in itself. Once you get your head around that you'll have a lot more patience for the industrial strength brethren.

Solution 5

Depending how you define "Lisp", Clojure may fit the bill. It runs on OS X fine (it runs anywhere the JVM runs). It has web capabilities and it's free.

It also has the benefit of being new and fresh and fun to use. Might be ideal for hobby programming. It's easy to write web apps or GUI apps (using Java's Swing or even Qt).

Author by


Education I hold a Master's Degree in Computer Science and a Ph.D. in Cognitive Science, both from the University of Delaware. Work Worked at Bell Labs from 1986 to 1991 in an applied Artificial Intelligence group building custom probabilistic logics to perform categorization and classification of ambiguous signals. After a brief stop doing C++ UI work in another department, I moved to Bell Labs' Advanced User Interface design group where I stayed until 1995. I started my own software company, BSDI, in 1991 and pursued it part time until leaving Bell Labs. BSDI is now one of the most influential software companies in the Fitness and Health Promotion market (If you haven't heard of us, it is because we work only with F/HP professionals - not with end users).

Updated on July 08, 2022


  • Dineshkumar
    Dineshkumar 11 months

    I am looking for a version of Scheme or even LISP that I can use to recover some lost Lisp development skills. Some web capabilities would be nice but not essential.

    I've looked at Plt and MIT scheme and, while both look pretty good, the Plt seems to be more feature rich. I've also looked at Lisp implementations but all of the seem quite expensive.

    I favor free/inexpensive implementations as this is truly likely to just be occasional hobby programming. What recommendations would you have?

  • Charlie Martin
    Charlie Martin over 14 years
    pretty much everything I tried it with; generally those have been heavy list manipulation and heavy use of the loop macro.
  • Slartibartfast
    Slartibartfast over 14 years
    I've chosen PLT more-or less randomly few weeks ago, and so far I'm very pleased with my choice. As you've said, lots of libraries and documentation, some useful tools.
  • David Thornley
    David Thornley over 14 years
    Might want to note that CCL doesn't appear to run on 32-bit Intel, so my Mac Mini's a bit old for it.
  • Dineshkumar
    Dineshkumar over 14 years
    Thanks, um, nobody. I'm more focused on tools and documentation than speed so I'm going with PLT.
  • Kyle Cronin
    Kyle Cronin over 14 years
    Sure thing. DrScheme is created with education in mind, which has some upsides (simple to use and documented) but also has some downsides; unless you're going through HtDP (htdp.org) it's best to ignore the teaching languages and use Module for everything.
  • Erik Kaplun
    Erik Kaplun over 9 years
    on the web site, they only seem to mention a native compiler, a to-C compiler, and a CLR implementation—where's the JIT one?
  • pnkfelix
    pnkfelix over 9 years
    The native compiler is a JIT.
  • pnkfelix
    pnkfelix over 9 years
    (that is, it dynamically compiles every Scheme expression you feed it via ‘load‘ or the REPL into x86 machine code. JIT here is for "just in time"; it is unrelated to Java and the JVM, in case that is what you thought I meant by JIT)
  • Erik Kaplun
    Erik Kaplun over 9 years
    I did not think it's got anything to do with Java; it's just that the home page says "compiles directly to native machine code", and that's not how JIT-compiling VMs/interpreters are usually described.
  • pnkfelix
    pnkfelix over 9 years
    Well, Larceny is not like many other JIT-compiling VM's, so the comparison may be less useful than I had hoped. E.g. many VM's use a hybrid interpreter/JIT, isolating compilation solely to code identified as "hot" during interpretation. Native Larceny is much more simple-minded, which has pro's and con's. Its compiler is fast enough that I rarely noticed it. Also, Native Larceny does offer serialization of compiled code to a "fast-load" (.fasl) file, which may be a closer match to what you expected (and helped in the exceptional cases where compilation time was a problem).
  • Erik Kaplun
    Erik Kaplun over 9 years
    Still not clear why the home page says "compiles directly to native machine code" :P can I get a binary directly from my Scheme source and execute that binary without any runtime dependency on the Scheme system that produced the binary?
  • pnkfelix
    pnkfelix over 9 years
    I have no control over the language Will Clinger chose to use for larcenists.org
  • pnkfelix
    pnkfelix over 9 years
    To answer your question, you can't really get a standalone binary from Larceny as it stands right now. You can load up your Scheme source and then serialize its heap (with compiled code) to a heap image, but even then you'd still have to re-distribute the heap file and the runtime binary as separate files. I've considered trying to make it easier to merge the two into a single binary image, but never took the plunge.
  • Jack
    Jack almost 8 years
    In addition to now being named Racket, there is now a new package system and package catalog that is now preferred over Planet for most use cases.