MM-Talk-Listenfunktionen
Liste.AddFirst
[Objekt]→Liste
Resultat: Die Funktion AddFirst
liefert eine neue Liste, wobei an deren Anfang das übergebene Objekt eingefügt wird.
Liste.AddLast
[Objekt]→Liste
Resultat: Die Funktion AddLast
liefert eine neue Liste, wobei an deren Ende das übergebene Objekt eingefügt wird.
Liste.Append
[WeitereListen]→Liste
Resultat: Die Funktion Append
liefert eine Liste, die eine Aneinanderkettung aller übergebenen Listen beinhaltet.
Beispiel: Append(List(1;2);List(4;3)) ergibt die Liste <1,2,4,3>.
ListeVonListen.Concatenate
→Liste
Resultat: Bei der Funktion Concatenate
werden ähnlich wie bei der Funktion Append
Listen aneinandergefügt. Hier werden die aneinander zufügenden Listen in Form von Elementen einer Liste übergeben.
Beispiel
Concatenate
(List(List(1;2);List(4;3))) ergibt Liste <1,2,4,3>.
Liste.Contains
[Objekt]→Boolean
Resultat: Die Funktion Contains
testet, ob die Liste das übergebene Objekt enthält. Sie liefert "Wahr", wenn das Objekt vorkommt, sonst den Wert "Falsch".
Liste.DeleteIf
[Testfunktion;Selektorfunktion]→Liste
Liste.DeleteIfNot
[Testfunktion;Selektorfunktion]→Liste
Selektorfunktion: vgl. Funktion Liste.Sort
Testfunktion: Eine einstellige Funktion, die einen Booleschen Wert liefern soll und als Testkriterium herangezogen wird.
Resultat: Die Funktionen DeleteIf
und DeleteIfNot
liefern die Teilliste aller Objekte, die das Testkriterium (für das Selektorfunktionsergebnis) erfüllen, bzw. (im Fall von DeleteIf
) nicht erfüllen.
Beispiel
Wenn $Liste eine Liste von Buchungen ist, liefert $Liste.DeleteIf
[#Buchung_Storniert] die Liste aller vorkommenden Buchungen, die nicht storniert sind.
EmptyList
→Liste
Resultat: Die Funktion EmptyList
liefert eine leere Liste.
Liste.Find
[Testfunktion;Selektorfunktion]→Objekt
Selektorfunktion: vgl. Funktion Liste.Sort
Testfunktion: Eine einstellige Funktion, die einen Booleschen Wert liefern soll und als Testkriterium herangezogen wird.
Resultat: Die Funktion Find
liefert das erste Objekt in der Liste, das das Testkriterium (für das Selektorfunktionsergebnis) erfüllt.
Beispiel
Beispiel: Wenn $Liste eine Liste von Buchungen ist, liefert $Liste.Find
[#Buchung_Storniert] die erste stornierte Buchung der Liste.
Liste.First
→Objekt
Resultat: Die Funktion First
liefert das erste Element der Liste.
Liste.Fold
[Funktion;Startwert]→Objekt
Resultat: 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).
Beispiele
Beispiel 1: List(1;2;3).Fold
[#Plus;0] liefert die Summe der Zahlen in der Liste, also (((0 + 1) + 2) + 3) = 6.
Beispiel 2: $Liste.Fold
[#Append;EmptyList] fügt alle Listen zusammen, liefert also dasselbe wie $Liste.Concatenate.
Lesen Sie zu einem weiteren Beispiel den Abschnitt Die Funktion "Fold" in den Tipps und Tricks zu MM-Talk.
Liste.GroupBy
[Gleichheitsfunktion;Selektorfunktion]→Liste(Liste)
Gleichheitsfunktion: Eine zweistellige Funktion auf den Selektorergebnissen, die einen Wahrheitswert liefern und entscheiden soll, ob zwei Listenelemente als gleich anzusehen sind. Default ist #Equal.
Selektorfunktion: vgl. Sort
Resultat: Die Funktion GroupBy
liefert die jeweils gleichen Elemente der Ausgangsliste werden in Listen zusammengefasst und die Menge aller dieser Listen in einer Liste geliefert.
Beispiel
Beispiel Wenn $Liste eine Liste von Wertpapieren ist, liefert $Liste.GroupBy
[_;#ISIN] eine Liste von Wertpapierlisten. Jede dieser Wertpapierlisten enthält die Wertpapiere zu genau einer ISIN und jedes Wertpapier aus $Liste ist in genau einer Wertpapierliste vorhanden.
Liste.IndexOf
[Objekt]→Zahl
Resultat: Die Funktion IndexOf
testet, ob die Liste das übergebene Objekt enthält. Sie liefert dann die Position des ersten Vorkommens beginnend bei 0 oder den Wert –1, falls das Objekt nicht vorkommt.
Liste.IsEmpty
→Boolean
Resultat: Die Funktion IsEmpty
testet, ob das Argument leer ist oder nicht. "Wahr" wird geliefert, falls eine leere Liste vorliegt.
Liste.Last
→Objekt
Resultat: Die Funktion Last
liefert das letzte Element der Liste.
Liste.Length
→Zahl
Resultat: Die Funktion Length
liefert die Länge der Liste.
Objekt.List
[WeitereObjekte...]→Liste
Resultat: Die Funktion List
liefert eine Liste, die alle übergebenen Objekte in der entsprechenden Reihenfolge beinhaltet.
n:Zahl.MakeList
→Liste(Zahl)
Resultat: Die Funktion MakeList
liefert die Liste der n Zahlen von 0 bis n-1.
Funktionsobjekt.Map
[Listen...]→Liste
Listen: Eine Reihe von bis zu 5 Listen entsprechend der Anzahl von Argumenten, die das Funktionsobjekt benötigt.
Resultat: Mit der Funktion Map
wird das Funktionsobjekt auf alle Listenelemente angewendet und die dabei entstehenden Ergebnisse werden in Form einer Liste geliefert. Die Elemente der n-ten Liste stellen dabei das n-te Argument der Funktion. Die Resultatliste ist genauso groß, wie die Listenparameter. Falls die Listenparameter unterschiedliche Länge haben, wird die längste Liste zugrunde gelegt; fehlende Listenelemente in den anderen Listen werden mit Defaultwerten aufgefüllt.
Beispiele
Beispiel 1: Wenn die Variablen $Liste1 und $Liste2 Listen von Zahlen beinhalten, ist der Ausdruck #Plus.Map
[$Liste1;$Liste2] sinnvoll. Ergebnis wäre eine Liste, deren 1. Element die Summe der ersten Elemente von Liste1 und Liste2 ist, deren 2. Element die Summe der zweiten Elemente von Liste1 und Liste2 ist usw.
Beispiel 2: Wenn $Liste eine Liste von Wertpapieren beinhaltet, dann liefert der Ausdruck #Name.Map
[$Liste] die Liste der Wertpapiernamen. Da Funktionen im Allgemeinen eine Listenerweiterung haben (was auch für #Name gilt), liefert der Ausdruck $Liste.Name dasselbe Ergebnis.
Liste.Nth
[n:Zahl]→Objekt
Resultat: Die Funktion Nth
liefert das n-te Element der Liste. Die Zählung beginnt bei 0.
Liste.RemoveDuplicates
[Gleichheitsfunktion;Selektorfunktion]→Liste
Gleichheitsfunktion: Eine zweistellige Funktion auf den Selektorergebnissen, die einen Wahrheitswert liefern und entscheiden soll, ob zwei Listenelemente als gleich anzusehen sind. Default ist #Equal.
Selektorfunktion: s. Liste.Sort
Resultat: Die Funktion RemoveDuplicates
liefert die Liste, bei der die doppelten Elemente entfernt wurden. Dabei werden im Fall von Doppeltvorkommen die vorderen Listenelemente beibehalten und die hinteren gelöscht.
Beispiel
Wenn $Liste eine Liste von Wertpapieren ist, liefert $Liste.RemoveDuplicates
[_;#ISIN] eine Liste, in der zu jeder ISIN nur ein Wertpapierobjekt vorkommt.
Liste.Reverse
→Liste
Resultat: Die Funktion Reverse
liefert eine Liste, in der dieselben Elemente wie im Argument vorkommen, aber in umgekehrter Reihenfolge.
Liste.Sort
[Vergleichsfunktion;Selektorfunktion]→Liste
Selektorfunktion: Ein Funktionsobjekt zu einer einstelligen Funktion, das zu den Listenelementen Objekte liefern soll, nach denen die Liste sortiert wird. Per Default wird hier die Funktion #Object verwendet, d. h., die Objekte selbst sind Argumente für die Vergleichsfunktion.
Vergleichsfunktion: Ein Funktionsobjekt, das die Sortierreihenfolge definiert, z. B. Greater oder Less. Die Vergleichsfunktion muss zwei Argumente des Typs erwarten, den die Selektorfunktion angewendet auf die Listenelemente liefert, und ein Boolean liefern.
Resultat: Die Funktion Sort
liefert eine entsprechend sortierte Liste.
Beispiel
Wenn $Liste eine Liste von Wertpapieren ist, liefert $Liste.Sort
[#Less;#Name] die Liste der Wertpapiere aufsteigend sortiert nach den Wertpapiernamen zurück.
Liste.SubList
[VonPosition:Zahl;BisPosition:Zahl]→Liste
Resultat: Die Funktion SubList
liefert die Teilliste ab Position <VonPosition> bis einschließlich Position <BisPosition>.
Objekt.ToList
→Liste
Resultat: Falls das Objekt eine Liste ist, liefert die Funktion ToList
die Liste selbst; sonst das Objekt in einer neuen, 1-elementigen Liste. Die Funktion dient dazu, sicherzustellen, dass ein Formelresultat eine Liste ist.
Objekt.Unique
→Objekt
Resultat: Falls das Objekt eine Liste ist, die genau aus einem Element besteht, oder falls das Objekt keine Liste ist, wird mit der Funktion Unique
dieses Element geliefert. Für leere Listen oder mehrelementige Listen liefert die Funktion einen Fehler.