You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Jamie Quigley cf5209508a
Bump version to 1.0 and update readme
6 months ago
app Remove unneeded dependecies 6 months ago
src Remove unneeded dependecies 6 months ago
test Initial commit 7 months ago
.gitignore Initial commit 7 months ago
LICENCE Initial commit 7 months ago
Setup.hs Initial commit 7 months ago
haskeme.cabal Remove unneeded dependecies 6 months ago
package.yaml Bump version to 1.0 and update readme 6 months ago
readme.md Bump version to 1.0 and update readme 6 months ago
stack.yaml Initial commit 7 months ago
stack.yaml.lock Initial commit 7 months ago
stdlib.scm Chapter 10: Standard library 7 months ago

readme.md

haskeme

A Scheme interpreter written in Haskell.

This was originally written following the book "Write Yourself a Scheme in 48 Hours".

It differs from the book in many ways. For example:

  • It uses megaparsec instead of parsec to parse the input. This is a fork of parsec that produces better error messages and is faster.
  • It uses a hashmap to store variables, instead of a list of tuples, making variable access faster.
  • It uses modules, rather than one large file enabling more parallel compilation.

The book I followed can be found here.

src/Text/Megaparsec/Char/Number.hs is a port of this Haskell package (available under the terms of the BSD 3-clause licence) to support megaparsec.

The code here is available under the terms of version 3 of the GNU GPL.