Leertaak 7

Representatie en normalisatie in de lambda-calculus

Achtergrond

Om de rekenkracht van de lambda-calculus te onderzoeken, construeren we representaties van verschillende datatypes: booleans, paren (tuples) en natuurlijke getallen. Naast recursie (met de dekpuntcombinator) blijkt ook pattern matching te vertalen naar lambda-calculus. Hiermee zijn alle berekenbare functies representeerbaar in de lambda-calculus, hetgeen dit berekeningsmodel even krachtig maakt als zijn imperatieve tegenhanger, de Turingmachine.

De reductiegraaf van een term kan zeer complex zijn, en evaluatie van een functioneel programma via het systematisch doorzoeken van alle reductiemogelijkheden daarmee ondoenlijk. Zogenaamde reductiestrategieën geven specifieke paden in de reductiegraaf aan. Zo'n strategie is bruikbaar voor berekeningen indien de normaalvorm (zo die er is) van elke term zich op het betreffende pad bevindt.

Leerdoel

Na het voltooien van deze taak kunt u

Instructie

  1. Lees p. 17-20, p. 30. Kernbegrippen:
  2. Construeer een lambda-definiërende term voor de functies in opgave 5 van de opgavenbundel.
  3. Laat zien dat de term in opgave 22 van de opgavenbundel geen normaalvorm heeft.
  4. Beantwoord opgave 13.
  5. Beantwoord opgave 17.

Product

Evaluatie