Hello,
[ Note: So in the default Pharo the method is named #sort: not #sortByProp:
or #sortBy: but it's a detail ]
I like this idea because I also have always the problem. So I would like to
be able to do:
projects sort: #creationDate
The implementation would be, in a similar fashion to how Symbol>>value: is
implemented for aCollection collect: #isPlague :
Symbol>>value: val1 value: val2
^ (val1 perform: self) <= (val2 perform: self)
Then :
(#( 10 42 31 23 90 87 65) collect: #asValueHolder) sort: #value
Answers:
an Array(a NewValueHolder[ 10 ] a NewValueHolder[ 23 ] a NewValueHolder[
31 ] a NewValueHolder[ 42 ] a NewValueHolder[ 65 ] a NewValueHolder[ 87 ] a
NewValueHolder[ 90 ])
which is correct :-).
However I do not like:
projects sort: [ :proj | proj author birthDate ]
If you allow that where is the limit to the thing you want to allow ? In
addition, I do not see any nice implementation and you could just implement
in project
Project>>authorBirthDate
^ self author birthDate
Best,
Clement
2014-03-11 9:19 GMT+01:00 Yuriy Tymchuk <[email protected]>:
> Hi guys.
>
> This is a thing that I encounter quite often.
>
> Eg I have a collection of projects and I want to sort them by creation
> date. It would be nice to be able to do something like:
>
> projects sortByProp: #creationDate
>
> or by birth date of the author
>
> projects sortByProp: [ :proj | proj author birthDate ]
>
> Maybe I'm wrong, but as I've told already I encounter it quite often and
> writing something like
>
> projects sortBy: [ :prev :next | prev creationDate <= next creationDate ]
>
> is boring for me.
>
> Cheers.
> Uko
>