haskeem: A small scheme interpreter

[ compilers-interpreters, program ] [ Propose Tags ]

This is a moderately complete small scheme interpreter. It implements most of R6RS, with the exception of call/cc. It is however starting to have a set of delimited continuations, reset/shift et al. It has a macro system, although not R6RS hygienic macros. It is also not necessarily fully tail-recursive; so it's not industrial-strength. For playing with or learning scheme, it should be pretty good.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.6.10, 0.7.0, 0.7.4, 0.7.5, 0.7.7, 0.7.9, 0.7.12, 0.7.16
Dependencies base (>=4 && <5), containers, directory, haskeline, haskell98, mtl, network, old-time, parsec, process, random, unix [details]
License LicenseRef-GPL
Author Uwe Hollerbach <uh@alumni.caltech.edu>
Maintainer Uwe Hollerbach <uh@alumni.caltech.edu>
Category Compilers/Interpreters
Home page http://www.korgwal.com/haskeem/
Uploaded by UweHollerbach at 2009-08-08T05:16:23Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables haskeem
Downloads 6255 total (19 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-31 [all 7 reports]

Readme for haskeem-0.7.12

[back to package description]
This is haskeem, a small scheme interpreter. It lives on the web at

    http://www.korgwal.com/haskeem/

You should be able to build it with

    cabal configure
    cabal build

Once you have done so, find the haskeem executable and run it.
At the "lisp> " prompt, type (assuming you are still in the top-level
haskeem directory)

    (load "stdlib.scm")
    (load "selftest.scm")

The first command loads haskeem's standard library, and the second command
runs the self-test. Assuming that all works, you can automate some of this:
copy the haskeem executable and the stdlib.scm file to some standard
location(s), and then set the environment variable HASKEEM_INIT to the
absolute path of the stdlib.scm file. I store both the haskeem executable
and the stdlib.scm file in /home/uwe/tools, which is in my PATH, and thus
I set HASKEEM_INIT to /home/uwe/tools/stdlib.scm. Then I (and you) can launch
haskeem from any directory.

If you do not have haskeline installed, don't panic! There is an alternate
version of the main module in the file haskeem_readline.hs. That provides
either a binding to the gnu readline library, or an alternate REPL with no
line-editing capability at all. You'll need to rename this to haskeem.hs,
edit it to select which of the two you want, and rebuild.

Sorry, no bindings to editline.

Enjoy!