Skip to content
An interpreter for the Monkey programming language written in Haskell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Add an example for hash Mar 5, 2017
lib Implement evaluators for hash processing Mar 5, 2017
repl Use Kleisli fish operator Mar 6, 2017
src Implement mki, the main interpreter Mar 5, 2017
.gitignore Initial commit Feb 4, 2017 Initial commit Feb 4, 2017
LICENSE Initial commit Feb 4, 2017 Update Mar 5, 2017
monkey-hs.cabal New github handle name Sep 27, 2017
stack.yaml Use Stackage LTS 8.3 Mar 6, 2017


An interpreter for the Monkey programming language written in Haskell

The Monkey Programming Language

The official Monkey logo

What's Monkey?

Monkey is a programming language designed for learning about interpreter implementation, used in a book, Writing An Interpreter In Go.

Why Haskell?

The original implementation in the book is written in Go. Go is a great language, but I personally find Haskell more attractive than Go. Haskell is well-known for its efficiency in writing compiler too.

Most importantly, writing Haskell makes me productive and happy.


Build, test and install

$ stack build
$ stack test
$ stack install # will install binaries in $PATH


$ mkrepl
$ stack exec mkrepl # without install


$ mki examples/
$ stack exec mki examples/ # without install



You can’t perform that action at this time.