Skip to main content
Skip table of contents

Die Funktion "Fold"

In der Referenz finden Sie folgende Beschreibung für diese Funktion:

Fold

Liste.Fold[Funktion;Startwert]

ErgebnistypParameterModulResultat
Objekt

Funktion

Startwert


Die <Funktion> wird nacheinander auf jedes Listenelement im zweiten Argument und dem vorherigen Funktionsergebnis (beim ersten Mal dem <Startwert>) im ersten Argument angewendet. Gesamtergebnis ist das Ergebnis der letzten Auswertung. Die Iteratorfunktion "Fold" ist sehr abstrakt und vielseitig, da die Zwischenergebnisse einen beliebigen Objekttyp haben können (z. B. Listen, Zeitreihen).

Beispiel 1


CODE
List(1;2;3).Fold[#Plus;0]

Dieses Beispiel liefert die Summe der Zahlen in der Liste, also (((0 + 1) + 2) + 3) = 6.

Beispiel 2


CODE
$Liste.Fold[#Append;EmptyList]

Dieses Beispiel fügt alle Listen zusammen, liefert also dasselbe wie "$Liste.Concatenate".

Neben diesen Beispielen lassen sich für die Funktion "Fold" auch Fälle konstruieren, in denen die Reihenfolge der Parameter eine Rolle spielt. Wenn man zwei Vektoren hat (in Form von zwei gleich langen Listen von Zahlen) kann man mit der Funktion "Fold" deren Euklidische Distanz errechnen (sozusagen den Abstand zweier Punkte). Als Beispiel kann die Korrelationsmatrix im Infront Portfolio Manager dienen:

CODE
$list1.length.makelist.fold[

#[$idx](object + ($list1.nth[$idx] - $list2.nth[$idx]).expX[2]);0].sqrt

Dabei wird praktisch eine For-Schleife realisiert.



JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.