R5RS Scheme interpreter, compiler, and library.
Husk is a dialect of Scheme written in Haskell that implements a superset of the R5RS standard. Advanced features are provided including:
First-class continuations of unlimited extent
Hygienic macros based on syntax-rules
Low-level explicit renaming macros
Library syntax from the R7RS standard
A foreign function interface (FFI) to Haskell
Full numeric tower providing support for real, rational, and complex numbers
Proper tail recursion and lexical scoping
Read-Eval-Print-Loop (REPL) interpreter, with input driven by Haskeline to provide a rich user experience
Standard library of Scheme functions, and support for many popular SRFI's
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, 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.
For documentation and examples, see http://justinethier.github.io/husk-scheme/documentation.html.
For detailed information on each release, see http://justinethier.github.io/husk-scheme/news.html.