A compiler for Func, a high-level, general-purpose, statically typed, garbage collected, purely functional programming language with type inference.
The language is mostly based on ML, Haskell, and JavaScript.
It's best to check out the demo and tutorial available at https://sodic.github.io/func.
The thesis is available at https://sodic.github.io/func-thesis.pdf.
Clone the repository, position yourself in the root directory:
git clone https://github.com/sodic/func
cd funcInstall dependecies and build the compiler:
npm install
npm run buildCreate a source file. For example, create the file test.func with the following contents:
func double(x) = 2 * x
func square(x) = x * x
squareAndDouble = double . square
eighteen = squareAndDouble(3)
Compile the source file:
npm run compile test.funcThe compiler will write the output to test.js.
Build the project and run tests:
npm run build-and-testRun the tests without building the project:
npm run test