Luie evaluatie: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Luckas-bot (overleg | bijdragen)
k r2.7.1) (robot Erbij: el:Οκνηρή αποτίμηση
lf
Regel 17:
takeWhile (<10) (map (+1) [1..])
 
De notatie <code>[1..]</code> geeft een oneindige lijst van [[Geheel getal|gehele getallen]] vanaf 1. Het opbouwen van deze oneindige lijst is niet mogelijk in talen met [[stricte evaluatie]] maar door luie evalutie is het wel mogelijk er berekeningen mee uit te voeren. De [[hogere-orde functieordefunctie]] <code>[[Map (hogere-orde functieordefunctie)|map]]</code> past een functie toe op alle elementen in een [[lijst (informatica)|lijst]] (in dit geval wordt bij elk element in de oneindige lijst één opgeteld). De functie <code>takeWhile</code> neemt elementen van het begin van een lijst zolang een bepaalde voorwaarde geldt (in dit geval zolang de elementen kleiner zijn dan 10).
 
Door luie evaluatie zal eerst het eerste element van de lijst berekend worden door één keer de functie (+1) toe te passen op het eerste element van de lijst (1). Als deze (1+1 = 2) aan de voorwaarde "kleiner dan 10" voldoet dan zal het volgende element berekend worden. Op deze wijze wordt een nieuw element van de oneindige lijst pas berekend als het echt nodig is voor het antwoord. Wanneer de voorwaarde niet meer geldt, wordt de rest van de lijst ook niet meer uitgerekend.