Giter VIP home page Giter VIP logo

husk-scheme's Introduction

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

  • docs - Documentation has been moved from here to the gh-pages branch.
  • examples - Example programs, mostly written in Scheme.
  • extensions - Haskell-based extensions to Husk.
  • hs-src - Haskell source code for Husk.
  • lib - Library portions of Husk written in Scheme.
  • scripts - Build scripts for Husk and a basic Emacs integration script.
  • 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

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.

husk-scheme's People

Contributors

justinethier avatar bholst avatar joshtriplett avatar egisatoshi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.