Deel I Functionele Programmeertalen Hoofdstuk 4 Functioneel Programmeren
- Slides: 26
Deel I: Functionele Programmeertalen Hoofdstuk 4: Functioneel Programmeren
Functies Functienotatie: De equivalente l-uitdrukking:
Voorwaardelijke functies De equivalente l-uitdrukking
Patroonherkenning De equivalente l-uitdrukking
Lijsten Miranda-notatie: [] [1, 2, 3] e: l hd l tl l
Lijsten De equivalente l-uitdrukking
Lijsten De equivalente l-uitdrukking
Functies op lijsten a ++ b hd a tl a length a take n a drop n a prefix n a concatenatie eerste element van de lijst a staart van de lijst a (lijst zonder kop) lengte van de lijst a lijst met eerste n elementen van lijst a lijst zonder de eerste n elementen van lijst a lijst met eerste n elementen van lijst a
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 kopelementen 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
Functies op lijsten product a b position a x map f a filter f a scalair product van de lijsten a en b positie van x in lijst a lijst met f toegepast op de elementen van a lijst met de elementen van a waarvoor f a waar is
Generische lijstfuncties
Functie let-in De equivalente l-uitdrukking voor let x = M in N: (lx. N)M met applicatieve evaluatievolgorde
Functie where De equivalente l-uitdrukking voor N where x = M: (lx. N)M
Functie where De equivalente l-uitdrukking voor N where x = M: (lx. N)M
Lijstcomprehensies Quicksort kan neergeschreven worden als
Recursie De reductie van fac 5 geeft aanleiding tot
Accumulatoren De reductie van fac 2 geeft aanleiding tot
(Naive) reverse inverse [a, b, c] geeft: [ ] + + [c] + + [b] + + [a] = c: b: a: [ ]
Reverse reverse [a, b, c] [ ] reverse [b, c] a: [ ] reverse [c] b: a: [ ] reverse [ ] c: b: a: [ ]
Continuaties
Continuaties
Applicatieve continuatie
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;
Stroomdiagramma f: =1 n>1 f: =f*n fac: =f n: =n-1 stop
Verzameling van functies Resultaat: f 1(n, f, fac)
Vereenvoudigingen q b-conversies q x-conversies
- Functioneel programmeren
- Delphi programmeren
- Psd programmeren
- Wat is programmeren
- Inleiding programmeren
- Anamnese volgens gordon
- Patroon van gezondheidsbeleving en instandhouding
- Diwug
- Functionele indeling zenuwstelsel
- Functionele niereenheid
- Boeken over functionele calculus
- Www.biologiepagina.nl- indeling plantenrijk
- Animaal zenuwstelsel
- Samenvatting bespiegeling hoofdstuk 9 massacultuur
- Handig tellen
- Aardrijkskunde hoofdstuk 2 havo 4
- Hoofdstuk in een opera
- Hoofdstuk 6
- Wiskunde a havo 4 hoofdstuk 3
- Stroomsterkte symbool
- De belofte van pisa samenvatting per hoofdstuk
- How many chapters are in noughts and crosses
- Begeleidingsstijlen leerling
- Boekhouden voor het hbo deel 2
- Gevoeligste deel netvlies
- Hoofdzin bijzin werkblad
- Onderdelen veer vogel