Metro is a functional programming language.
Currently, the language is dynamically typed and compiles to JavaScript, but I plan to add a static type system and other backends in the future. The language itself is usable but quite basic at the moment. New features are being added, although at a relatively slow pace since schoolwork takes up most of my time. The projects page contains a list of stuff I'm planning on adding. I may write up a more detailed plan at some point.
The purpose of this project is to explore not only language design, but also compiler design using Haskell. So I use this project as a place to experiment with advanced GHC extensions and new Haskell libraries.
See the docs
directory for documentation.
The only way to use the metro compiler at the moment is to build it from source. You'll need stack to build the compiler, and also node.js to run the compiler since it uses some JavaScript libraries.
- Clone or download this repository. If you want a more stable version then use the most recent release.
- Run
npm install
to install JS dependencies. - Run
stack install
to build the compiler.
Now you should have an executable named metro
.