← Projects
🐁

Shrew

GoInterpreterLisp

A Scheme interpreter written in Go. Implements a subset of R5RS Scheme including a lexer, parser, and tree-walking evaluator. Built to get a deeper understanding of language implementation and Lisp-family languages.

This was inspired by Writing an Interpreter in Go, The Little Schemer, and Structure and Interpretation of Computer Programs.

It’s compiled to WebAssembly and runs entirely in your browser below. The session starts bare and keeps definitions until you reset; load miniKanren (the logic-programming language from The Reasoned Schemer) to explore.

Custom libraries can be loaded via URL as well such as: https://joelholmes.dev/files/little_schemer.scm

Try it