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 >> > >> >> >
