[](http://justinethier.github.com/husk-scheme)
Husk is a dialect of Scheme written in Haskell that implements a superset of the [R5RS standard](http://www.schemers.org/Documents/Standards/R5RS/HTML/) and a large portion of the [R7RS-small](r7rs.org) language. Advanced features are provided including continuations, hygienic macros, libraries, and a full numeric tower.
Husk may be used as either a stand-alone interpreter or as an extension language within a larger Haskell application. By closely following the R5RS standard, the intent is to develop a Scheme that is as compatible as possible with other R5RS Schemes. Husk is mature enough for use in production applications, however it is not optimized for performance-critical applications.
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 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.
More information is available on the [husk website](http://justinethier.github.com/husk-scheme).
Installation
------------
1. Prerequisites: You will need the [Haskell Platform](http://hackage.haskell.org/platform/) if you don't already have a recent copy installed.
2. Install Husk using [cabal](http://www.haskell.org/cabal/):
cabal update
cabal install husk-scheme
3. Adjust your PATH: Before running Husk you may also need to add the cabal executable directory to your path. On Linux this is `~/.cabal/bin`.
4. Now you are ready to start up the interpreter:
justin@my-pc$ huski
_ _ __ _
| | | | \\\ | |
| |__ _ _ ___| | __ \\\ ___ ___| |__ ___ _ __ ___ ___
| '_ \| | | / __| |/ / //\\\ / __|/ __| '_ \ / _ \ '_ ` _ \ / _ \
| | | | |_| \__ \ < /// \\\ \__ \ (__| | | | __/ | | | | | __/
|_| |_|\__,_|___/_|\_\ /// \\\ |___/\___|_| |_|\___|_| |_| |_|\___|
http://justinethier.github.com/husk-scheme
(c) 2010-2014 Justin Ethier
Version 3.18
huski> (define (hello) 'world)
(lambda () ...)
huski> (hello)
world
Husk has been tested on Windows, Linux, and FreeBSD.
Documentation
-------------
The online [user manual](http://justinethier.github.io/husk-scheme/manual/index.html) provides an overview of the Scheme language as implemented by Husk, including:
- A [getting started](http://justinethier.github.io/husk-scheme/manual/getting-started.html) guide.
- [Instructions](http://justinethier.github.io/husk-scheme/manual/haskell-interface.html) for using the [Haskell API](http://hackage.haskell.org/package/husk-scheme)
- An alphabetical listing of the [Scheme API](http://justinethier.github.io/husk-scheme/manual/node106.html).
**Directory Structure**
- **`docs`** - Documentation has been moved from here to the [`gh-pages`](http://justinethier.github.io/husk-scheme/) branch.
- [**`examples`**](https://github.com/justinethier/husk-scheme/tree/master/examples) - Example programs, mostly written in Scheme.
- [**`extensions`**](https://github.com/justinethier/husk-scheme/tree/master/extensions) - Haskell-based extensions to Husk.
- [**`hs-src`**](https://github.com/justinethier/husk-scheme/tree/master/hs-src) - Haskell source code for Husk.
- [**`lib`**](https://github.com/justinethier/husk-scheme/tree/master/lib) - Library portions of Husk written in Scheme.
- [**`scripts`**](https://github.com/justinethier/husk-scheme/tree/master/scripts) - Build scripts for Husk and a basic Emacs integration script.
- [**`tests`**](https://github.com/justinethier/husk-scheme/tree/master/tests) - Functional tests for Husk. These can be run automatically by using `make test` from the main Husk directory.
License
-------
Copyright (C) 2010 [Justin Ethier](http://github.com/justinethier)
Husk scheme is available under the [MIT license](http://www.opensource.org/licenses/mit-license.php).
The interpreter is based on code from the book [Write Yourself a Scheme in 48 Hours](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours) written by Jonathan Tang and hosted / maintained by Wikibooks.