And we already have VM based String compare: with strange logic returning 1, 2, 3. So we already can optimize current String>>threeWayCompareTo:.
Maybe good idea to open ticket and modify image level methods to return standard -1,0,1 values.
If we're modifying core sorting methods, we might as well use proper objects instead of magic numbers���
Ordering
�� Lesser
�� Equal
�� Greater
�� (Unordered?)
And while I'm on the topic of vocabulary, I'm not convinced by SortFunction��� "to sort" means either to screen, to classify, or to arrange. There is a notion of going through all elements and swapping them around or putting in specific bins. Think QuickSort, MergeSort, etc
The mathematical term for the thing that determines whether two elements a and b are such that a ��� b is "Order relation". So IMHO Java's Comparator fits the purpose much better; OrderFunction or OrderRelation would be nice and just Order would have my preference:
Order with: aPredicate
(Order with: [:a :b | a < b]) value: 1 value 2. ��� the singleton instance of Lesser
Order by: aMappingBlock
people sorted: (Order by: #name) , (Order by: #age)