This is a lambda calculus type checker and evaluator. It is an F# implementation of the algorithms and concepts presented by Emmanuel Chailloux and Romain Demangeon in the TAS (Typage et Analyse Statique) course at Sorbonne University.
ml-core 1.0.0
Copyright (C) 2022 ml-core
-f, --file File path to the file to evaluate and infer. If no file is specified a mini-REPL will run
instead.
-l, --include-lib (Default: false) If enabeled, a library file containing some predefined functions (map, range
...) will be loaded.
-d, --debug (Default: false) Displays alpha-conversion and detailed evaluations.
--help Display this help screen.
--version Display version information.
-
Install the dotnet SDK and runtime here.
-
Go to the root folder (where the readme file is located).
-
Restore the projects :
dotnet restore
-
To run the REPL :
-
To run the tests :
-
To run the web app :
-
Install the dotnet SDK and runtime here.
-
Go to the root folder (where the readme file is located).
-
Run the shell script using the source command (IMPORTANT).
source build.sh
This will generate the binary under the out folder.
-
WITHOUT changing directory, run the REPL :
ml-core [your flags] (refer to the help section above)
OR use a file
ml-core -f [your file path] [your flags] (refer to the help section above)
there is already a program.zfs file defnied in the root folder, you can update it and run it using the following command :
ml-core -f program.zfs [your flags] (refer to the help section above)
sample :
Refer to the rapport.pdf file for more details !
Here are some sample outputs with the REPL :