Conclusion & Further Resources
Once in a while you get shown the light in the strangest of places if you look at it right Jerry 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!