Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Functioneel programmeren / Luie en oneindige reeksen
De reeksoperator
De reeksoperator ... bouwt een lijst op vanaf een
beginpatroon tot een eindwaarde. Geef hem de eerste paar elementen en
het eindpunt, en hij werkt uit hoe de reeks doorloopt:
say (2, 4 ... 10); # (2 4 6 8 10)Uit 2, 4 leidt hij “tel er telkens twee bij op” af, en
hij gaat door tot hij 10 bereikt. De stap kan ook omlaag
gaan:
say (10, 8 ... 2); # (10 8 6 4 2)Als de elementen door vermenigvuldiging in plaats van optelling groeien, merkt de operator dat ook:
say (1, 2, 4 ... 64); # (1 2 4 8 16 32 64)Hier is elke term het dubbele van de vorige, dus de reeks is meetkundig.
Wanneer de regel ingewikkelder is dan de operator kan raden, kun je haar expliciet als closure van de vorige elementen leveren. Bijvoorbeeld een expliciete regel “tel de stap op”:
say (1, * + 2 ... 9); # (1 3 5 7 9)Het blok * + 2 zegt hoe je het volgende element uit het
huidige krijgt. Daarmee kan ... elke reeks uitdrukken die
je met een regel kunt beschrijven.
Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Cursusnavigatie
← Luie en oneindige reeksen | Quiz — De reeksoperator →
💪 Of ga direct naar de
oefeningen in deze sectie.