Unterteilt die Elemente einer Liste in eine Liste mit Listen, die jeweils die Listenelemente enthalten, die die zugehörigen Schlüssel- und Testkriterien erfüllen. Allerdings können werde die Reihenfolge der Untergruppen noch die Reihenfolge der darin enthaltenen Elemente als verlässlich angesehen werden.
partition ( list As List, _
Optional key As Name = :Identity, _
Optional test As Name = :Equal) As List
| Argument | Typ | Beschreibung |
|---|---|---|
| list | List | Die zu unterteilende Liste |
| key | Name | Optional. Der Name der Funktion, die für jedes Element der Liste aufgerufen werden soll. Vorgabe ist :Identity. Der Rückgabewert dieser Funktion wird mit den Kriterien der Testfunktion verglichen. |
| test | Name | Optional. Der Name der Testfunktion, die auf die Ergebnisse von key aus der Liste angewendet werden soll. Vorgabe ist :Equal. |
Intent ->partition({"a", "b", "c", "c", "e", "z", "x", "c", "e"})
--> {{"x"}, {"z"}, {"e", "e"}, {"c", "c", "c"}, {"b"}, {"a"}}
Intent ->partition({"a", "c", "b", "c", 1, 3, "c", 3, 2, 1})
--> {{2}, {3, 3}, {1, 1}, {"b"}, {"c", "c", "c"}, {"a"}}
Intent ->partition({:a, :c, "b", :c, 1.1, 3, :c, 3, 2, 1}, key := :integer?)
--> {{ 1, 2, 3, 3}, {c, 1.1, c, "b", c, a}}
Function integer?(item As Any) As Boolean
integer? = (typeName(item) = :integer)
End Function
Intent >partition({"abc", "123", "24", "xyz", "35"}, key := :length)
--> {{"35", "24"}, {"xyz", "123", "abc"}}
Die Reihenfolge des Ergebnisses kann auch abweichen.