2017-04-20 17:06 GMT+02:00 Ben Coman <b...@openinworld.com>:

>
>
> On Thu, Apr 20, 2017 at 3:17 AM, Stephane Ducasse <stepharo.s...@gmail.com
> > wrote:
>
>> why?
>> Iterators are powerful and avoid that we all reinvent the wheel in our
>> own corners.
>>
>> About keySelect: I do not see the point to convert a large collection
>> into a dictionary then do yet another pass.
>> To me it looks like a hack.
>>
>> I implemented
>> selectEvery:
>> (selectFirst selectSecond) as helpers.
>>
>> and also unzip all in one pass.
>> Now I have no problem to keep them for me but to me this is the wrong
>> attitude.
>>
>> Stef
>>
>>
>> testSelectEveryFirst
>> self assert: (#(#Object #subclass: #Point #instanceVariableNames: 'x y'
>> #classVariableNames: '' #package: 'Kernel-BasicObjects') selectEveryFirst)
>> asArray equals: #(#Object #Point 'x y'  '' 'Kernel-BasicObjects')
>>
>
>
> selectEveryFirst seems a strange name, not indicating the skip amount.
> The first of every three? or four?  As it stand, technically I'd think its
> result would
> be equals: (#(#Object #subclass: #Point #instanceVariableNames: 'x y'
> #classVariableNames: '' #package: 'Kernel-BasicObjects')
>
> +1 to Peter's suggested #withIndexSelect:
>
> cheers -ben
>

On the other hand, we have #keysAndValuesDo: which competes with
#withIndexDo: and is a bit more portable across dialects
(it's just that it turns the bloc parameters the other way around, [:index
:element | ])

So maybe this should have been #keysAndValuesSelect: #keysAndValuesCollect:

Reminder, keys does not mean Dictionary, in an IndexedCollection (or maybe
a SequenceableCollection) the keys are indices. Or the other way around, a
Dictionary is indexed by arbitrary keys (not just positive integers).

Reply via email to