Fold is a modern pragmatic functional language with concise, expressive, programmable syntax for development of blazingly fast and robust applications.
Currently the language parser is being implemented as a separate parsing library:
- Language Overview – quick overview of the language for the impatient.
- Language Guide – introduces the language and the ecosystem.
- Language Reference – defines the formal specification of the language.
Any and all contributions are very much welcomed. Please fork the repository and send a pull request to the master branch.
Thank you for your interest and have a nice day.
The project can be built with docker. The official image foldlang/fold
can be used to build and test the compiler.
# Clone the repository (If path is not specified, 'fold' folder will be created in the current path)
git clone https://github.com/fold-lang/fold [path]
cd [path | fold]
# Build the docker container
make docker-build
# Start the docker container (the image will be fetched from the registry)
make docker-run
# Now inside the container run "make".
make build
# Fold compiler will be locally called as "Main.native".
./test_parser.byte
./Main.native
If you wish to build the image locally a Dockerfile
is provided. All
changes to the dependencies should be added to the Dockerfile
to ensure that
the image can be always rebuild.
- Sedlex – Unicode-friendly lexer generator.
- Pure – Small and modular base library.
- Iter – Efficient functorized iterators.
- Fmt – Format pretty-printer combinators.
- ppx_format – Simple Python-inspired syntax for string formatters.
- ppx_deriving – Type-driven code generation.
- Cmdliner – Declarative definition of command line interfaces.