Readme for husk-scheme-3.19

husk-scheme

Husk is a dialect of Scheme written in Haskell that implements a superset of the R5RS standard and a large portion of the R7RS-small 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.

Installation

  1. Prerequisites: You will need the Haskell Platform if you don't already have a recent copy installed.

  2. Install Husk using 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 provides an overview of the Scheme language as implemented by Husk, including:

Directory Structure

License

Copyright (C) 2010 Justin Ethier

Husk scheme is available under the MIT license.

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.