Conclusion & Further Resources

Once in a while you get shown the light in the strangest of places if you look at it rightJerry Garcia

Yeahp, that’s our Scheme! Now its time for yours!

What We Have Done

In broad terms, we’ve built a programming language that’s dynamically typed, runtime evaluated, and largely based on Scheme. We’ve extensively relied on Haskell abstractions: functors, monads, and their transformers and derivatives. Although we do handle input/output, our language is pretty simple and lacks optimization. However, we are in a very good position to quickly extend the language in in a couple of different ways.

Where To Go From Here

The Scheme we’ve created can be extended in the following ways:

Paired List LispVal data constructor

Type System

Build out library to create a useful DSL

Compile to DSL to a stack language, C, or LLVM

Submit a PR and improve this project!

In many ways, I think of this project as the spiritual predecessor to Stephen Diehl’s Write You A Haskell. I think you’re ready, but that’s really up to you!