/fold

A modern pragmatic functional language. (Unreleased)

Primary LanguageOCamlMIT LicenseMIT

The Fold Programming Language

Fold is a modern pragmatic functional language with concise, expressive, programmable syntax for development of blazingly fast and robust applications.

fold-repl

Currently the language parser is being implemented as a separate parsing library:

Documentation

Contributing

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.

Building

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.

Dependencies

  • 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.