De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Deel I: Functionele Programmeertalen Hoofdstuk 4: Functioneel Programmeren.

Verwante presentaties


Presentatie over: "Deel I: Functionele Programmeertalen Hoofdstuk 4: Functioneel Programmeren."— Transcript van de presentatie:

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

21

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


Download ppt "Deel I: Functionele Programmeertalen Hoofdstuk 4: Functioneel Programmeren."

Verwante presentaties


Ads door Google