Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdLeona Kuiper Laatst gewijzigd meer dan 10 jaar geleden
1
1 Prof. Dr. Martine De Cock academiejaar 2005-2006 Lambdarekenen
2
2 Turing-machine toestand symbool nieuwe toestand nieuw symbool richting a1a1R a0b1R b1b1R b0c0L c1s0L a10110 a10110 b11110 b11110 b11110 c11110 s11100
3
3 Lambdacalculus (Church) ( x.( y.x(yy))( y.x(yy)))( zxy.(( x.(x( xy.x))) x)y(z(( x.(x( xy.y)))x)(( x.(( xyz.zxy)( xy.y) x))y)))(( xyz.zxy)( xy.y)( x.x))(( xyz.zxy)( xy.y)(( xyz.zxy)( xy.y)( x.x))) optellen van 1 en 2 programma (inclusief invoer): ( xyz.zxy)( xy.y)(( xyz.zxy) ( xy.y)(( xyz.zxy)( xy.y)( x.x))) uitvoer:
4
4 Overzicht Lambdatermen Substitutie Rekenregels Lambdacombinatoren Programmeren in lambdacalculus
5
5 Lambdatermen vmet v in V (M N) met M in en N in ( v.M) met v in V en M in 3 GEDAANTES verz. van alle uitdrukkingen
6
6 Haakjes en vernestelde abstr. buitenste haakjes applicatie is linksassociatief vernestelde abstractie invloed abstractor: naar rechts x.(xy) x.(xy)) xy(xy) VOORNAAFSPRAAK x.xy x.(xy) xyz (xy)z x. y.xy xy.xy
7
7 Overzicht Lambdatermen Substitutie Rekenregels Lambdacombinatoren Programmeren in lambdacalculus
8
8 Vrij en gebonden verzameling van veranderlijken met vrij voorkomen in L voor v in V, M en N in
9
9 Substitutie voor v in V, M en N in met u niet vrij in M !
10
10 Overzicht Lambdatermen Substitutie Rekenregels Lambdacombinatoren Programmeren in lambdacalculus
11
11 Rekenregels voor v in V, M en N in conversie conversie voor v en w in V, M in en w niet vrij in M
12
12 conversie veranderlijken in abstractor verschillend veranderlijken vrij en gebonden verschillend vergemakkelijkt substitutie lambatermen zijn -congruent indien ze door -conversie in elkaar kunnen omgezet worden
13
13 redex en -normaalvorm Een -redex is een lambdaterm van de vorm ( v.M)N Een -normaalvorm is een lambdaterm waarin geen -redex voorkomt
14
14 Overzicht Lambdatermen Substitutie Rekenregels Lambdacombinatoren Programmeren in lambdacalculus
15
15 Lambdacombinatoren Een lambdacombinator (of gesloten term) is een lambdaterm die geen vrije voorkomens van veranderlijken bevat.
16
16 Overzicht Lambdatermen Substitutie Rekenregels Lambdacombinatoren Programmeren in lambdacalculus
17
17 Lambdacalculus (Church) ( x.( y.x(yy))( y.x(yy)))( zxy.(( x.(x( xy.x))) x)y(z(( x.(x( xy.y)))x)(( x.(( xyz.zxy)( xy.y) x))y)))(( xyz.zxy)( xy.y)( x.x))(( xyz.zxy)( xy.y)(( xyz.zxy)( xy.y)( x.x))) optellen van 1 en 2 programma (inclusief invoer): ( xyz.zxy)( xy.y)(( xyz.zxy) ( xy.y)(( xyz.zxy)( xy.y)( x.x))) uitvoer:
18
18 Waarheidswaarden Tru = K en Fls = TK Tru MN = M Fls MN = N Cons MN = z.zMN Cons MN Tru = M Cons MN Fls = N
19
19 Getallen 1 ( xyz.zxy) ( xy.y) ( x.x) 2 ( xyz.zxy) ( xy.y) (( xyz.zxy) ( xy.y) ( x.x)) 3 ( xyz.zxy) ( xy.y) (( xyz.zxy) ( xy.y) (( xyz.zxy) ( xy.y) ( x.x)))
20
20 Lijsten [] x.( xy.x) [t]( xyz.zxy)t( x.( xy.x)) [s,t]( xyz.zxy)s(( xyz.zxy)t( x.( xy.x))) koppel lege lijst
21
21 Recursie probleem opsplitsen in deelproblemen die analoog zijn maar gemakkelijker F is een fixpuntcombinator als M( F M) = F M voor elke lambdaterm M x.( y.x(yy)) ( y.x(yy)) (Curry)
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.