Scheme and Emacs

April 18, 2014

For those who like to write Scheme without leaving Emacs, Geiser is probably the way to go.

The Racket guide for Emacs also recommends to install Quack, which I happened to try long ago for an introductory course in programming for Bioinformatics where we were using Scheme (I was using Chicken Scheme at that time).

I believe DrRacket (formerly PLT Scheme) is really a great software to learn Scheme and do serious stuff with it, including computational science. I know people would not necessarily consider Racket as a pure Scheme language. By the way, here are some of the most upvoted questions on Stack Overflow:

Beside Doug Williams science collection, Racket now includes scientific packages like plot and math/statistics.

For example, using a toy demo from Racket website, here is how it looks under the native Mac app (left). And here is the same script processed through Emacs Geiser (right)

With Emacs, you just have to M-x run-geiser to start the REPL (it is pretty fast to come up, unlike Clojure REPL). However, since Geiser targets both Racket and Guile, I decided to compile Guile. I tried to install Guile some time ago, following a suggestion on Cross Validated where I provided a brief illustration with Scheme. But it soon reached to the point where I had too much dependencies to manage and I finally gave up. This time, it works perfectly well, and I suspect that this is because I added all those dependencies in the mean time (in particular, to install mu).


Finally, I recently learned about Pyret (and, as a side-effect, of Frog):

Pyret is a programming language designed to serve as an outstanding choice for programming education while exploring the confluence of scripting and functional programming.


Emacs 24.4 is available for OS X on (check the Nightlies builds), and it comes with pretiffy1, see also What’s new in Emacs 24.4.

By the way, I learned that Emacs 24.3 suffers from a problem when rendering sRGB color, which explains why I got some strange problems with powerline.2

  1. I use pretty-lambdada.el at the moment. ↩︎

  2. Other issues came around when I used the solarized theme. Now, I switched to gruber-darker theme, so it doesn’t bother me anymore. ↩︎

See Also

» Using mu to manage e-mails (followup) » Emacs auto-completion for Python » GNU Emacs on OS X 10.7 » Color schemes for Emacs and TeX » Getting started with Slime