Funktionale Programmierung / Sort-Funktion
Sort-Funktion
".sort" bietet eine individuelle Sortier-Funktion.
Each
data = [ "Huber", "Müller", "Meier", "Koch" ]
data.sort( :e, e[1,3] > e[2,3] ).print
Die Variable "e" enthält hier eine Liste mit 2 Werten. Das zweite Argument muss zurückgeben, ob die Reihenfolge korrekt (true) oder falsch (false) ist.
In diesem Beispiel wird die Liste nach dem dritten Buchstaben der Wörter absteigend sortiert.
Durch "Deep Get / Set" wird mit "e[1,3]" in diesem Beispiel der 3.Buchstabe des ersten bzw. zweiten Wertes abgefragt.
FuncLet
Für komplexere Aufgaben kann die Sortierfunktion in eine eigene Funktion ausgelagert werden:
::mySort( Str a, Str b ) Bool = a[2] < b[2]
data = [ "Huber", "Müller", "Meier", "Koch" ]
data.sort( ::this.mySort ).print
- Powered by
OghsWiki
-