As for -1 , 0 , 1, we must encode 3 possible results:

value1 is before value2 (<)
value1 is same rank as value2 (=)
value1 is after value2 (>)

Using numbers -1,0,+1 to encode these results is clever, because it's
trivial to revert the order (just take the opposite, or multiply by -1)
So it's widespread in programming community, it's cultural

We could use any other convention like Symbols #(< = >), that would convey
a bit more meaning,
but there's no need to go against culture if we have no superior solution
(wrt inversion)

2017-11-05 18:30 GMT+01:00 Nicolas Cellier <
[email protected]>:

> Hi Stef
>
> Collation is the accurate and correct term
> If I google: Unicode comparison algorithm for example, the first hit is:
> UTS #10: Unicode Collation Algorithm - Unicode.org
> http://unicode.org/reports/tr10/
>
> collationner (collate) has a second meaning, even in French:
> https://fr.wiktionary.org/wiki/collationner
>
> Interestingly, the wikipedia page https://en.wikipedia.org/wiki/Collation
> isn't even translated in French...
> Maybe i's not popular enough in French (un mot savant)...
> I'm not good enough in English to tell if it has same "snob" connotation
>
> Nicolas
>
> 2017-11-05 17:49 GMT+01:00 Stephane Ducasse <[email protected]>:
>
>> Hi nicolas
>>
>> where it is defined that collation is something returning -1, 0, 1?
>> I'm always thinking to newcomers that have to learn yet another
>> concept and here for nothing.
>> Because SortFunction with a nice comment saying that it should return
>> -1, 0, 1 looks simpler that CollatorFunction which tells me nothing,
>> except that may be this is about drinking (for french).
>>
>>
>> Stef
>>
>> On Sun, Nov 5, 2017 at 3:47 PM, Nicolas Cellier
>> <[email protected]> wrote:
>> >
>> >
>> > 2017-11-05 10:16 GMT+01:00 Esteban Lorenzano <[email protected]>:
>> >>
>> >>
>> >>
>> >> > On 5 Nov 2017, at 06:00, Stephane Ducasse <[email protected]>
>> >> > wrote:
>> >> >
>> >> > Hi guys
>> >> >
>> >> > Why do we rename class Sort to introduce terms that have unknown,
>> >> > unclear, undocumented meaning?
>> >>
>> >> +1
>> >>
>> >> >
>> >> > To me PluggableSortFunction is MUCH better than
>> CollatorBlockFunction.
>> >>
>> >> but pluggable is also bad, IMO.
>> >> also I see there is some incoherence in the names:
>> >
>> >
>> > agree with Esteban, Pluggable pouah!
>> >
>> >>
>> >> ChainedSortFunction -> this is kind of ok, but I think a
>> >> “ComposedSortFunction” is better.
>> >
>> >
>> > But there can be several kind of composition...
>> > For example wrapped as illustrated with UnderfinedSorter refactoring
>> that I
>> > proposed.
>> > Personnally I like Chained because it explicitely tells the kind of
>> > composition
>> >
>> >> SortByPropertyFunction -> shouldn’t be “PropertySortFunction”  ?
>> (coherent
>> >> with the previous one)
>> >
>> >
>> > +1 for PropertySortFunction, or maybe just PropertySorter
>> >
>> >> CollatorSortFunction -> this is like a “BlockSortFunction” or
>> >> “ValuableSortFunction” ?
>> >
>> >
>> > CollatorBlockFunction is only a proxy to the block so as it answers to
>> > #threeWayCompare:with: protocol rather than value:value:
>> > It's a Block view as a CollatorFunction.
>> > The name first surprised me negatively, but after reflexion it tells
>> what it
>> > is.
>> >
>> > 1) Collator indicates that the block (valuable) will return -1, 0 or +1
>> >
>> > 2) It's not necessarily a block, it could be anything understanding
>> > value:value:
>> > But, the valuable should return -1,0,+1, so apart <=>
>> (threeWayCompareTo:)
>> > it ain't gonna be anything but a block in practice.
>> > For <=> we would want a DefaultSortFunction and would not use a
>> > CollatorBlockFunction.
>> >
>> > 3) Function refers to SortFunction.
>> > For this, I'm neutral, whether you call it Sorter or SortFunction I
>> don't
>> > care.
>> > SortFunction kind of implies these are stateless, so it's a rather good
>> and
>> > accurate name.
>> > Maybe a Sorter could be more confusing, because a Sorter could be
>> thought as
>> > having the sorted collection as instance variable (statefull).
>> >
>> > Nicolas
>> >
>> >>
>> >> Esteban
>> >>
>> >> >
>> >> > Stef
>> >> >
>> >>
>> >>
>> >
>>
>>
>

Reply via email to