Lambdakalkyl

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Lambdakalkyl (λ-kalkyl) är i ett formellt system som skapades för att undersöka funktioner och rekursion. Lambdakalkylen utvecklades på 1920-talet av Alonzo Church. På 1960-talet förstod man att lambdakalkylen kunde användas för att förstå programspråk.

Det har därför blivit den matematiska grunden för funktionella programspråk.

Objekten i lambdakalkyl är termer (som ibland kallas lambdatermer). Det finns tre typer av termer

  1. Variabler, x, y, z, ...
  2. abstraktion, λx.t där t är en term
  3. applikation, t_1\ t_2 där t1 och t2 är termer

Abstraktion kan ses som definition av en funktion och applikation motsvarar tillämpning av en funktion.

På termerna använder man olika typer av reduktioner för att visa satser om lambdakalkylen. Lite förenklat är reduktionerna:

  • α-reduktion - namnen på variblerna kan bytas
  • β-reduktion - en term (\lambda x.t_1)\ s reduceras till termen t2 som är termen t1 med alla x utbytta mot s
  • η-konvertering - termen \lambda x.f\ x konverteras till termen f

Churchkodning

För att använda lambdakalkyl för programspråk behöves bland annat tal och booleska värden. De finns inte i lambdakalkylen men de kan kodas med så kallad Churchkodning.

Booleska värden

true \equiv \lambda x.\lambda y. x
false \equiv \lambda x.\lambda y. y

Naturliga tal


Personliga verktyg