The husk-scheme package

[Tags: library, mit, program]

A dialect of R5RS Scheme written in Haskell. Provides advanced features including continuations, hygienic macros, and the full numeric tower.


[Skip to ReadMe]

Properties

Versions1.0, 1.1, 1.2, 1.3, 2.0, 2.1, 2.2, 2.3, 2.4, 3.0, 3.1, 3.2, 3.2.1, 3.3, 3.4, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.5.1, 3.5.2, 3.5.2.1, 3.5.2.2, 3.5.2.3, 3.5.3, 3.5.3.1, 3.5.3.2, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.6, 3.6.1, 3.6.2, 3.6.3, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15, 3.15.1, 3.15.2, 3.16, 3.16.1, 3.17, 3.17.1, 3.18, 3.19
Change logNone available
Dependenciesarray, base (>=2.0 && <5), containers, directory, haskeline, haskell98, mtl, parsec [details]
LicenseMIT
AuthorJustin Ethier
MaintainerJustin Ethier <github.com/justinethier>
CategoryCompilers/Interpreters, Language
Home pagehttps://github.com/justinethier/husk-scheme
Executableshuski
UploadedSat Apr 30 01:54:26 UTC 2011 by JustinEthier
DistributionsNixOS:3.19
Downloads6701 total (443 in last 30 days)
Votes
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for husk-scheme-2.4

husk Scheme

husk is a dialect of Scheme written in Haskell that implements a subset of the R<sup>5</sup>RS standard. Advanced R<sup>5</sup>RS features are provided including continuations, hygienic macros, and a full numeric tower.

husk provides many features and is intended as a good choice for certain applications, however it is not a highly optimized version of Scheme. Rather, the goal of the project is to provide a tight integration between Haskell and Scheme while at the same time providing an opportunity for deeper understanding of both languages. In addition, by closely following the R<sup>5</sup>RS standard, the intent is to develop a Scheme that is as compatible as possible with other R<sup>5</sup>RS Schemes.

Scheme is one of two main dialects of Lisp. Scheme follows a minimalist design philosophy: the core language consists of a small number of fundamental forms which may be used to implement the other built-in forms. Scheme is an excellent language for writing small, elegant programs, and may also be used to write scripts or embed scripting functionality within a larger application.

Feature List

husk includes the following features from R<sup>5</sup>RS:

As well as the following approved extensions:

husk scheme is available under the MIT license.

Installation

husk may be easily installed using cabal - just run the following command:

cabal install husk-scheme

Usage

The interpreter may be invoked by running it directly from the command line:

./huski

Alternatively, you may run an individual scheme program:

./huski my-scheme-file.scm

API

A Haskell API is also provided to allow you to embed a Scheme interpreter within a Haskell program. The key API modules are:

For more information, run make doc to generate API documentation from the source code. Also, see shell.hs for a quick example of how you might get started.

Development

The following packages are required to build husk scheme:

The scm-unit-tests directory contains unit tests for much of the scheme code. All tests may be executed via make test command.

The examples directory contains example scheme programs.

Patches are welcome; please send via pull request on github.

Credits

husk scheme is developed by Justin Ethier.

The interpreter is based on code from the book Write Yourself a Scheme in 48 Hours written by Jonathan Tang and hosted / maintained by Wikibooks.

If you would like to request changes, report bug fixes, or contact me, visit the project web site at GitHub.