A course project of Functional Programming at Tsinghua University in the fall semester of 2016.
- Purely functional
- Number, Boolean, pair types and built-in functions.
- Lexical scope (
let
assignment) - Fully functional lambda calculus
- No control flow with native Boolean type. (Use Church encoding, though you have to re-invent everything and you won't get neat output).
- No recursion. (Use Y combinator if you need recursion)
cd src
cabal build
dist/build/ki -i FILE # Interpret FILE and write result to stdout
dist/build/ki --repl # Open in REPL mode
See docs/README.md
(Chinese) for details.
See examples
for sample programs.
See docs/report.md
(Chinese).