sort()

Zusammenfassung

Gibt eine Kopie der Eingabe list sortiert nach dir. Die Richtung dir muss entweder :Ascending oder :Descendingsein. Die list muss homogen sein. Alle Elemente in list muss entweder numerisch ( Integers und / oder Numbers ) oder alphabetisch ( Strings ), es sei denn, eine key-Funktion angegeben wird. wird ein Fehler gemeldet, wenn einer heterogenen list angegeben wird.

Auch sekundäre und tertiäre Sortiervorgänge sind möglich. Wenn zwei Elemente nach Anwendung der key-Funktion gleich sind, können sie nach einem sekundären Kriterium sortiert werden. Die "Reihenfolge" und "Funktion" Argumente können Sie eine list von Names . Das erste dir- bzw. key-Argument ist das primäre Sortierkriterium. Nach Bedarf können weitere Kriterien verwendet werden.

Syntax

sort ( list As List, _
       dir As Name, _
       Optional key As Name = :Identity) As List 
Argument Typ Beschreibung
list List Die Eingabe list sortiert werden soll.
dir Any Gibt die -- können entweder :Ascending oder :Descendingsein. kann als einzelner Wert angegeben, die verwendet werden, um alle Sortierschlüssel oder als list mit einer für jeden Sortierschlüssel --, definiert bestimmte Sortierung Richtung für jeden Key.
key Any Optional. Gibt den Namen einer Funktion für jedes Element in der Liste, um eine wichtige sortiert werden. Vorgabe ist :Identity. Die Schlüsselfunktion muss entweder einen numerischen Wert oder string , und geben Sie einen Funktionsnamen list aus, um eine Sortierung auf mehreren Ebenen durchzuführen.

Beispiel 1

Ohne Sortierschlüssel
Intent >sort({:a, :d, :r, :c, :b}, :Descending) 
--> {:r, :d, :c, :b, :a} 
Gibt eine einfache Liste mit Namenswerten in umgekehrter Reihenfolge ihrer Werte.

Beispiel 2

Fehler: Verwenden einer heterogenen list
Intent >sort({:a, :d, :r, 3.1, :b, :c}, :Ascending) 
Fehler: heterogene list wurde durch die Funktion #1).

Die Sortierschlüssel müssen homogen sein.

Beispiel 3

Fehler: Der vorgegebene Sortierschlüssel ist nicht anwendbar.
Intent >sort({{:a,:d}, {:r,:b}, {:c,:x}}, :Ascending) 
Fehler: key-Funktion #1 hat nicht ein Integer , Number , String oder Name .

So sortieren Sie eine list der Elemente anderen als Zahlen oder strings , geben Sie den Namen einer key-Funktion gibt eine Zahl oder eine string für jedes Element in der list . In diesem Beispiel wird beim Versuch, eine list Sortieren lists direkt zu einem Fehler geführt.

Beispiel 4

Mithilfe einer key-Funktion
Intent >sort({{:a,:d}, {:r,:b}, {:c,:x}}, :Ascending, key := :first) 
--> {{:a, :d}, {:c, :x}, {:r, :b}} 
Sortieren lists In diesem Beispiel wurden mit der key-Funktion first als Schlüssel.

Beispiel 5

Mithilfe einer key-Funktion
Intent >sort({{:a,:d}, {:r,:b}, {:c,:x}}, :Ascending, key := :second) 
--> {{:r, :b}, {:a, :d}, {:c, :x}} 
Diese lists sortiert wurden mithilfe der Funktion second als Schlüssel.

Beispiel 6

Verwendung von zwei Sortierschlüsseln
 Intent >sort({{4,:a,7}, {1,:c,4}, {4,:a,5}, {1,:c,3}, {1,:a,5}}, :Ascending, key := {:first, :third}) 
--> {{1, :c, 3}, {1, :c, 4}, {1, :a, 5}, {4, :a, 5}, {4, :a, 7}}
Sortieren lists In diesem Beispiel wurden mit der key-Funktion first als Primärschlüssel und die Funktion third als sekundärer Schlüssel.

Beispiel 7

Verwendung von drei Sortierschlüsseln
 Intent >sort({{4,:a,7}, {1,:c,4}, {4,:a,5}, {1,:c,3}, {1,:a,5}}, :Ascending, key := {:first, :second, :third}) 
--> {{1, :a, 5}, {1, :c, 3}, {1, :c, 4}, {4, :a, 5}, {4, :a, 7}}
Sortieren lists In diesem Beispiel wurden mit der key-Funktion first als Primärschlüssel, die Funktion second als sekundärer Schlüssel und die Funktion third als tertiärer Schlüssel. Alle Sortierschlüssel wurden in aufsteigender Reihenfolge (:Ascending) angewendet.

Beispiel 8

Verwendung einer anderen Sortierreihenfolge für jeden Schlüssel
 Intent >sort({{4,:a,7}, {1,:c,4}, {4,:a,5}, {1,:c,3}, {1,:a,5}}, {:ascending, :descending}, key := {:first, :third}) 
--> {{1, :a, 5}, {1, :c, 4}, {1, :c, 3}, {4, :a, 7}, {4, :a, 5}} 
Sortieren lists In diesem Beispiel wurden mit der key-Funktion first als Primärschlüssel und die Funktion third als sekundärer Schlüssel -, aber die Richtungen werden aufsteigend und absteigend sortieren. Wenn alle Sortierkriterien die gleiche Richtung haben, müssen Sie die Richtung nicht erneut angeben (siehe Beispiel 6 und 7).