Build an Interpreter

Start with numbers and arithmetic. End with a language that has variables, functions, conditionals, and loops.

You’ll write an evaluate function that grows with each problem; adding new rules for how your language works. Each rule is small. Each problem extends what you’ve already built. By the end, you’ve made something that runs real programs, and you understand every line of it.

01

Evaluating Expressions

beginner
0/4
02

Variables and Functions

beginner
0/2
03

Conditionals

beginner
0/3
04

Refactoring with Currying

intermediate
0/2
05

Recursion

intermediate
0/2
06

Use Your Language

intermediate
0/10
07

Syntactic Sugar

intermediate
0/2
08

Pairs

intermediate
0/4
09

Lists

intermediate
0/4
10

Interpreters

intermediate
0/4