Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Scheme Interpreter

This project is a web-based Scheme interpreter that runs entirely in the browser. The Scheme intepreter runs CS 61A Scheme, a flavor of Scheme used in UC Berkeley's CS 61A course. The interpreter's structure is loosely based on the Scheme project from that course.

Running the Interpreter

In the Browser

The web-based interpreter can be found at

In the Terminal

This project also includes a command-line REPL that can also be used to execute Scheme code. To use it, clone this repository and use npm to run the start script:

git clone
cd scheme-interpreter
npm install
npm run start

Repository Structure

This repository is divided into two main components: the src directory and the client directory.

The src directory is a Node.js module that contains the JavaScript code for evaluating Scheme code. It also includes an entrypoint for running a terminal-based REPL to execute code locally. This module is imported in the client to handle code execution in the browser.

The client directory contains the code for the front-end website, built with React. This is the code that renders the website and calls the Scheme interpreter to evaluate the code that the user inputs.

The JavaScript and Sass for this site are bundled with webpack, and the JS is transpiled with babel. The site is hosted out of the gh-pages branch of this repo, and GitHub Actions is used to automate builds.


Scheme interpreter written in JavaScript with a React front-end






No releases published


No packages published