If work is left in my Queens' College pigeon-hole by 6pm the previous
day, or emailed to me by 10pm,
then I guarantee to mark it in time for the supervision the next day.
Send email to firstname.lastname@example.org.
Supervisions will be held in my office in the computer lab, TP6.
Make sure you sleep at least 8 hours a night -- otherwise learning
doesn't sink in, according to this article in the Journal of Cognitive Neuroscience!
Foundations of Functional Programming
Supervision work and Dates:
The work listed as, say, May10, is work due before the May10
- May10 - 93.5.9 (numbers goedel), 95.5.10 (hnf solvable),
99.5.12 (rosser lists Y)
- May17 - 96.6.9 (superc), 94.6.10 (graph Y), 97.6.9 (odd)
- May24 - 95.6.10 (secd), 96.5.9 (long)
- May31 - Held in Botanical Gardens (if dry, by central fountain;
if wet, in glass house). Program a SECD machine. (Use de-Bruijn if you want).
Optionally, do a combinator machine as well. (trees would be easier than graphs).
Be neat to use same input for both machines. Can you write combinator
machine which lets user define other supercombinators? Optionally,
For my convenience, what lectures and tripos questions are ready
for what supervision:
- Supe1: (A1) combinators church-rosser 99.5.12ab normal-form 97.5.11aci 95.5.10ab-hard equality 94.5.10a,
(A2) lambda reduction 99.6.12-odd 98.5.9a names,
(A3) encoding-data-types lists 94.5.10bcd trees 96.5.9a 98.6.9-long
numbers 97.6.9cd-odd 93.5.9abd Y 99.5.12cd 94.6.10c-subtle
97.5.11bcii, (A4) imperative state CPS,
- Supe2: (B1) graph-combinators 93.6.9cd 94.6.10a, (B2)
lambda-comb-translation 93.6.9ab 96.6.9abcd-supercs 97.6.9ab-odd,
(B3) intrepreter environment 95.6.10ab 98.5.9bc
- Supe3: (B4) closures SECD 94.6.10b 95.6.10cd-easy-mechanical, (B5) performance,
(C1) let-polymorphism, (C2) unification
- Supe4: (C3) decidability 96.5.9b-hardish-proof-odd