Please read me!
In this lab, you are going to write yourself an untyped lambda calculus in OCaml and play with it.
You need to complete three files in the lib
directory. The key points are:
lambda.ml
- named representation of lambda calculus
- locally nameless representation of lambda calculus
- substitution
- normal forms
arithmetic.ml
- Church numerals and its operations
- Recursion and the Y combinator
combinator.ml
- the SK combinator theory
It is recommended to do the lab in this order, but the latter two are actually independent.
The comments in these code files constitute the lab guide. Please read them carefully.
Supplementary materials can be found in ZJU-PPL/supplements.
Scoring details can be found in ZJU-PPL/lab-1/Scoring.md.
On how to submit: visit ZJU-PPL/lab-1-submit.
Happy learning, happy coding! Best wishes!