Hello,

@Uko

Well I implemented Symbol>>value:value: in a similar fashion than
Symbol>>value: for 'aCollection collect: #aSymbol'. But that's not a
perfect solution for sure.

@Camille

I used PluggableSet and PluggableDictionary in my project and they were so
slow that in the end I implemented my own collection. It will be a real
alternative when we will have clean blocks. (For that we need to merge with
Cog's trunk which includes merging Spur)...


2014-03-11 10:45 GMT+01:00 Yuriy Tymchuk <[email protected]>:

>
> On 11 Mar 2014, at 10:19, Clément Bera <[email protected]> wrote:
>
> Hello,
>
> [ Note: So in the default Pharo the method is named #sort: not #sortByProp:
> or #sortBy: but it's a detail ]
>
>
> Yes, my mistake, I was misguided by #isSortedBy:
>
> Now #sortByProp: is my own example method that accepts a block and
> executes it for each sortable item and then the result is compared.
>
> I don't like the idea to implement #value:value: for a symbol because it
> caries a bit of a logic inside it.
>
> Uko
>
>
> 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
>>
>
>
>

Reply via email to