2017-11-05 9:52 GMT+01:00 Stephane Ducasse <[email protected]>:

> Hi nicolas
>
>
> > With current implementation, collatedInFrench would have to use a block
> > (thru a CollatorBlockFunction which is a proxy to the block in a
> > SortFunction disguise):
> >
> >     Symbol>>collatedInFrench
> >         "interpret self as a property"
> >         ^[:a :b | FrenchCollator collate: (self value: a) with: (self
> value:
> > b)]
> >
> > But IMO SortByPropertyFunction should better feed a reified
> > CollatorFunction, or said differently a SortFunction, as Denis said.
>
> (I should say that I do not like collator as a name. It does not mean
> anything to me.)
>

Then use Sorter.

Now in general I think that we are abusing blocks like in Glamour
> (because we want compact syntax).
> My rule of thumb to compare little class vs. block is
> - do we have optional state?
> - do we have many arguments (where we have to learn by heart the order)?
>
>
You forgot one rule:
- is the block replicated in many places?
 (that rule should include client libraries, not only kernel image)


> >     Symbol>>collatedInFrench
> >         ^FrenchCollator new onProperty: self
> >
> >     SortFunction>>onProperty: aValuable
> >         ^SortByPropertyFunction sortProperty: aValuable with: self
> >
> > What do you think?
> >
> > Nicolas
> >
>
>

Reply via email to