Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdNorbert Verstraeten Laatst gewijzigd meer dan 10 jaar geleden
1
Deel I: Functionele Programmeertalen Hoofdstuk 4: Functioneel Programmeren
2
Functies De equivalente -uitdrukking: Functienotatie:
3
Voorwaardelijke functies De equivalente -uitdrukking
4
Patroonherkenning De equivalente -uitdrukking
5
Lijsten Miranda-notatie: [ ] [1,2,3] e : l hd l tl l
6
Lijsten De equivalente -uitdrukking
7
Lijsten De equivalente -uitdrukking
8
Functies op lijsten a ++ b concatenatie hd a eerste element van de lijst a tl a staart van de lijst a (lijst zonder kop) length a lengte van de lijst a take n a lijst met eerste n elementen van lijst a drop n a lijst zonder de eerste n elementen van lijst a prefix n a lijst met eerste n elementen van lijst a
9
Functies op lijsten suffix n a lijst met laatste n elementen van lijst a takewhile c a maximaal prefix van lijst a waarvoor c geldt dropwhile c a lijst na het droppen van kop- elementen waarvoor c geldt reverse a lijst van elementen van lijst a in omgekeerde volgorde zip a b lijst met koppels uit a en b, in dezelfde volgorde
10
Functies op lijsten product a b scalair product van de lijsten a en b position a x positie van x in lijst a map f a lijst met f toegepast op de elementen van a filter f a lijst met de elementen van a waarvoor f a waar is
11
Generische lijstfuncties
12
Functie let-in De equivalente -uitdrukking voor let x = M in N : ( x. N ) M met applicatieve evaluatievolgorde
13
Functie where De equivalente -uitdrukking voor N where x = M : ( x. N ) M
14
Functie where De equivalente -uitdrukking voor N where x = M : ( x. N ) M
15
Lijstcomprehensies Quicksort kan neergeschreven worden als
16
Recursie De reductie van fac 5 geeft aanleiding tot
17
Accumulatoren De reductie van fac 2 geeft aanleiding tot
18
(Naive) reverse inverse [a, b, c] geeft: [ ] + + [c] + + [b] + + [a] = c:b:a:[ ]
19
Reverse reverse [a,b,c] [ ] reverse [b,c] a:[ ] reverse [c] b:a:[ ] reverse [ ] c:b:a:[ ] c:b:a:[ ]
20
Continuaties
22
Applicatieve continuatie
23
Transformatie tussen een imperatief en een functioneel programma function fac(n: integer): integer; var f: integer; begin f := 1; while n > 1 do begin f := f * n; n := n - 1 end; fac := f end;
24
Stroomdiagramma fac:=f f:=1 n>1 f:=f*n n:=n-1 stop
25
Verzameling van functies Resultaat: f 1 ( n, f, fac )
26
Vereenvoudigingen -conversies -conversies
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.