valeri/README.md

1.1 KiB

Valeri: a pure Lisp with algebraic effects

This language is created for people to have fun with functional programming, while not requiring to learn difficult concepts. Because of its dynamism and purity, this is what you can do:

  • Send any object over the network (including function closures)
  • Suspend and resume execution at any point in time (and even travel back in time)
  • Use any object as a dictionary key

Valeri doesn't have classes, and instead relies on passing primitive data structures around, like dictionaries, arrays, sets, etc.

All IO in the language is implemented by using delimited continuations.

Getting started

There are no packages yet, so you'd need to compile from source. You'd need cmake and either gcc or clang. To build:

cmake .
make

And then either run the REPL:

./valeri

Or run the example:

./valeri example.vli

To run tests:

ctest

Get in touch

Acknowledgements

The name of the language is the name of my love, Valeri.