
     Feed Icon

Heist: A Scheme Interpreter Written in Ruby

By Peter Cooper / February 25, 2009

heist-in-progress.pngHeist is a Scheme interpreter by James Coglan written in Ruby. Scheme is a programming language that's a dialect of Lisp, was an influence upon Ruby, and still a popular choice for learning functional programming (such as in the classic Structure and Interpretation of Computer Programs).

As well as being used as a stand-alone Scheme interpreter, Heist can also be used as a Ruby library for executing Scheme / Lisp code within Ruby applications.

Other than being of interest to programming language and Lisp nuts, Heist is a great example of not just a complete, well written Ruby app, but a well formed language interpreter too. It includes tests written in Scheme (thus giving the interpreter a real workout!) and the code is generally very well structured. Even if you don't want to download it, it's worth browsing through the Github repository as there's some rather nice programming in there.

This is not the first time a Scheme interpreter has been written in Ruby. Early in 2008, Phil Hagelberg was working on Bus Scheme, although the Github repository shows no updates since last summer.


  1. Marc says:

    Isn't it about time we should stop spreading stereotypes such as "criminals are dark-skinned men"?
    This picture is "funny" (I guess), but also stereo-typical.
    Unlike commercial creative directors, I'm sure you don't have an audience so stupid you have to satisfy with only the most basic ideas, evoking their fears or manipulating them.

  2. duh says:

    I thought it was the bag on his head and the gun that made him a criminal, not his skin color.

  3. Soleone says:

    @Marc: Come on, are you serious? You see I didn't even notice he was black - oh no, can I say black? :) - until you made an issue of it!

    This picture is really funny in a combo with the headline - that's why I wanted to comment on it. Peter, don't listen to narrow minded guys like this (but I guess you wouldn't anyway)!

Other Posts to Enjoy

Twitter Mentions