Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Funktionale Programmierung

Funktionen höherer Ordnung

In Raku ist eine Subroutine ein gewöhnlicher Wert: Sie können sie in einer Variablen ablegen, sie einer anderen Subroutine übergeben und sie als Ergebnis zurückliefern. Eine Subroutine, die eine andere Subroutine aufnimmt oder zurückgibt, heißt Funktion höherer Ordnung, und sie ist das Herz der funktionalen Programmierung.

Funktionen höherer Ordnung haben Sie schon verwendet, ohne sie so zu nennen — map, grep und sort nehmen alle einen Codeblock als Argument. Dieser Abschnitt zeigt, wie Sie eigene schreiben.

Diese blockannehmenden Methoden sind auch ein natürlicher Ort für die Form mit Doppelpunkt, die Ihnen erlaubt, die Klammern wegzulassen — (1..10).grep: * %% 2 statt (1..10).grep(* %% 2). Sie wird in Aufrufen mit Doppelpunkt eingeführt, und die Abkürzung *, die sie verwendet, ist der Whatever-Stern.

Themen in diesem Abschnitt

Praxis

Lösen Sie 2 Quizze zum Inhalt dieses Abschnitts.

Übungen

Dieser Abschnitt enthält 3 Übungen. Sehen Sie sich alle Themen dieses Abschnitts an, bevor Sie mit den Übungen beginnen.

  1. Zweimal anwenden
  2. Bauen Sie einen Multiplikator
  3. Filtern mit einem Block

Kursnavigation

Lösung: Dreieckszahl   |   Subroutinen übergeben