Syntax | sort anArray using <expression with element and nextElement> | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Semantics |
It is not determined what sort algorithm will actually be used, though a Quicksort derivative is the most common. Be aware that sort algorithms are not linear (typically n log n to n2 iterations for n elements). Therefore, you should keep the expression as compact as possible. When using a boolean expression, make sure that equality always returns true (e.g. by using <= instead of <). Otherwise, the implemented sort algorithm may take longer than necessary or not terminate at all. | |||||||||||||
Substitutables | anArray | Can be any variable or object attribute having the type Array. | ||||||||||||
<expression with element and next element> | This expression must use the currently evaluated array element and its next neighbor and indicates if the current order is OK or not. | |||||||||||||
| ||||||||||||||
Examples | Sort an array of integers in ascending order set sorted = sort myList using element - nextElement; Sort an array of strings in ascending order set sorted = sort myList using element.text < nextElement.text; Sort an array using dates in descending set sorted = sort myList using element.date > nextElement.date; Sort an array using boolean return values set sorted = sort myList using element <= nextElement; Sort an array with complex elements over 2 sort key set sorted = sort inputContainer.elements using (element.aString = nextElement.aString and element.anInteger < nextElement.anInteger) or element.aString < nextElement.aString; |