https://github.com/tomstuart/little_scheme
Growing a little Scheme interpreter, guided by The Little Schemer
https://github.com/tomstuart/little_scheme
Last synced: 10 months ago
JSON representation
Growing a little Scheme interpreter, guided by The Little Schemer
- Host: GitHub
- URL: https://github.com/tomstuart/little_scheme
- Owner: tomstuart
- Created: 2014-01-13T11:01:43.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-07-10T08:46:59.000Z (almost 12 years ago)
- Last Synced: 2023-04-18T04:47:34.532Z (about 3 years ago)
- Language: Ruby
- Homepage:
- Size: 667 KB
- Stars: 9
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
A little Scheme
===============
This repository contains executable examples of the behaviour of a simple Scheme interpreter, adapted from [The Little Schemer](http://www.ccs.neu.edu/home/matthias/BTLS/).
Each chapter’s examples are in a commit with an appropriate tag: `chapter-one`, `chapter-two`, `chapter-three` and so on. To begin implementing the functionality for a particular chapter:
```
$ bundle install
$ git checkout chapter-two
$ bundle exec rspec
```
The examples expect to be able to instantiate a class called `LittleScheme::Parser` and call its `parse` method to get the abstract syntax tree (AST) of a program, and then to be able to instantiate a class called `LittleScheme::Evaluator` and call its `evaluate` method to evaluate that AST. If you run the examples, the failures should guide you.