Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Funktionale Programmierung / Reduktion
Der Reduktions-Metaoperator
Setzen Sie einen beliebigen Infixoperator in eckige Klammern, und er wird zu einer Reduktion: Er wird zwischen jedes Element einer Liste gesetzt und klappt die Liste zu einem Wert zusammen.
say [+] 1, 2, 3, 4, 5; # 15
say [*] 1, 2, 3, 4, 5; # 120[+] summiert die Liste, als hätten Sie
1 + 2 + 3 + 4 + 5 geschrieben; [*]
multipliziert sie. Dasselbe funktioniert mit jedem Infixoperator:
say [max] 4, 9, 2, 7; # 9
say [min] 4, 9, 2, 7; # 2
say [~] 'a', 'b', 'c'; # abc[max] reduziert mit dem Operator max, um
das größte Element zu finden, und [~] reduziert mit dem
Verkettungsoperator ~, um die Stücke zusammenzufügen.
Der Reduktions-Metaoperator arbeitet auf jeder Liste, auch auf einem Bereich:
say [+] 1..100; # 5050Er ist eine von Rakus knappsten und ausdrucksstärksten Möglichkeiten: eine ganze Schleife voller Aufsummierung in einem Klammerpaar.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Reduktion | Quiz — Der Reduktions-Metaoperator →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.