Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A Scheme-like language with a form of Hindley-Milner-Damas Type Inference
JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
test
HMDScheme.peg
LICENSE
README.md
inference.js
interpreter.js
parser.js

README.md

HMD Scheme

About

A little Scheme implementation (for certain definitions of 'Scheme') using a form of Hindley-Milner-Damas type inference. Right now evalS kind of works, and it passes some type checking tests. I will be further expanding this and supply a live web demo whenever I have time. Also hopefully I'll start writing some sort of a compiler for this in Haskell at some point.

Influences

This takes a lot of influence/code-adaptation from:

Currently Supports

  • Type infers non-polymorphic algebraic data types (poly's to add).
  • Type infers def/defn/lambdas.
  • Type infers atoms.
  • Type infers function application.
  • Type infers let and let* (thinking about removing let and just making let* let).
  • Type infers non-polymorphic lists (polymorphic lists are illegal).

TODO

  • Add better errors.
  • Add polymorphic algebraic data types.
  • Add pattern matching.
  • Add type annotations.
  • Fix up the web demo.
Something went wrong with that request. Please try again.