I have other ideas yet.

The selector undefinedFirst is good, but the implementation not so.
I don't like the UndefinedSortFunction: too specific, compose oddly...

In the PR, collatedBy: is the way to tell how we sort properties (if you
have a better name, go, it's bikesheding day)

    "sort by size of name"
    (people sorted: (#name collatedBy: #size))
        =  (people sorted: [:p| p name size])

If we defined <=> in Boolean
(orWhatEverTheLongSelectorYouPreferBecausePharoHasTheFreedomToHaveOwnTaste:)
in order to have true sorted first, then we can generalize.

    "sort by absolute value, but put the negative first"
    numbers sorted: #negative sortedFirst, #abs

    "sort by name, but put the undefined last"
    people sorted: (#name collatedBy: #isNil sortedLast) , #name.

sortedFirst in this case would be a synonym for ascending (or
asSortFunction).
Alternatively, if we don't want <=> in Boolean because it's not natural
(the fact that we need a synonym is a clue)
then we can have sortedFirst answering a specialized BooleanSortFunction.


2017-11-07 1:21 GMT+01:00 Nicolas Cellier <
[email protected]>:

> Back to the thread: https://github.com/pharo-project/pharo/pull/440
>
> 2017-11-06 22:52 GMT+01:00 Ben Coman <[email protected]>:
>
>>
>>
>> On Tue, Nov 7, 2017 at 4:52 AM, Nicolas Cellier <
>> [email protected]> wrote:
>>
>>>
>>>> MC is not so bad. OK branches are not named (or neeed not be), GUID are
>>> inferior to SHA, etc...
>>> The biggest difference comes from github, that is the social
>>> environment, not necessarily git.
>>>
>>
>> Some would say it was github that "made" git (popular).
>>
>> cheers -ben
>>
>>
>

Reply via email to