Funktionale Programmierung / Reduce-Funktion

Reduce-Funktion

Mit ".reduce" können alle Werte einer Liste auf einen einzelnen Gesamtwert reduziert werden.

Each

Die zu übergebenden Argumente sind hierbei:

  1. Startwert
  2. VarLet, in die der Wert von "each" zugewiesen wird.
  3. Berechnung
data = [ 4, 9, 5, 2, 6 ]

data.reduce( 5, :e, e[ 1 ] + e[ 2 ] ).print

Bei ".reduce" enthält "each" eine Liste mit 2 Werten. Der erste Wert ist das aktuelle Ergebnis, der zweite Wert ist das aktuell verarbeitete Objekt aus der Liste.

In diesem Beispiel werden somit alle Werte, ausgehend vom Startwert 5 summiert. Das Ergebnis ist somit: 31

FuncLet

Ebenso kann eine andere Funktion zur Verarbeitung aufgerufen werden, die in diesem Fall 2 Parameter benötigt:

::myReduce( sum, val ) = sum * val

data = [ 4, 9, 5, 2, 6 ]
data.reduce( 2, ::this.myReduce ).print

Als Ergebnis kommt hier 4320 zurück: 2*4*9*5*2*6 = 4320

- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €