Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Concurrent programmeren / hyper en race 🆕 / Exercises / hyper met een filter

Oplossing: hyper met een filter

Hier is een mogelijke oplossing voor de taak.

Code

say (1..20).hyper.grep(* > 10).map(*²);

🦋 Je kunt de broncode vinden in het bestand hyper-filter.raku.

Uitvoer

(121 144 169 196 225 256 289 324 361 400)

Opmerkingen

  1. is slechts Raku’s schrijfwijze met superscript voor * ** 2: de ² is een postfix-machtsoperator, dus is een WhateverCode die haar argument kwadrateert. Schrijf * ** 2 als je dat liever hebt.

  2. .hyper parallelliseert de hele keten — de grep die de getallen boven 10 houdt en de map die ze kwadrateert — met behoud van de volgorde.

  3. Omdat de volgorde bewaard blijft, komen de kwadraten in dezelfde volgorde terug als hun invoer (11², 12², …, 20²), wat (121 144 169 196 225 256 289 324 361 400) geeft.

Cursusnavigatie

hyper met een filter   |   Reactief programmeren