Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Functioneel programmeren

Hogere-ordefuncties

In Raku is een subroutine een gewone waarde: je kunt haar in een variabele bewaren, haar aan een andere subroutine meegeven, en haar als resultaat teruggeven. Een subroutine die een andere subroutine aanneemt of teruggeeft heet een hogere-ordefunctie, en dat is het hart van functioneel programmeren.

Je hebt al hogere-ordefuncties gebruikt zonder ze zo te noemen — map, grep en sort nemen allemaal een codeblok als argument. Deze sectie laat zien hoe je die zelf schrijft.

Deze methoden die een blok aannemen zijn ook een natuurlijke plek voor de vorm met dubbele punt, waarmee je de haakjes kunt weglaten — (1..10).grep: * %% 2 in plaats van (1..10).grep(* %% 2). Die wordt geïntroduceerd in Aanroepen met een dubbele punt, en de afkorting * die hij gebruikt is de Whatever-ster.

Onderwerpen in deze sectie

Praktijk

Maak de 2 quizzen over de inhoud van deze sectie.

Oefeningen

Deze sectie bevat 3 oefeningen. Bekijk alle onderwerpen van deze sectie voordat je aan de oefeningen begint.

  1. Pas twee keer toe
  2. Maak een vermenigvuldiger
  3. Filteren met een blok

Cursusnavigatie

Oplossing: Driehoeksgetal   |   Subroutines doorgeven