On 2010-Oct-25, at 15:14, Damian Conway wrote:

> Yes, Ted Z. pointed out to me that, as the name of this construct,
> "every" has ambiguity and synonym issues. Other possibilities are:
> 
>    select(@values) < one(3..7)
>    those(@values) < one(3..7)
>    whichever(@values) < one(3..7)
>    itemize(@values) < one(3..7)
>    extract(@values) < one(3..7)
> 
> ...of which, only C<select> really seems a good alternative.
> 
> Any other suggestions most welcome!

Applying a slightly more stringent test example,
the above terms, plus a few new suggestions,
separates in to two groups

  these work for me

    @nv = those(@values) < one(3..7)
    @nv = only(@values) < one(3..7)
    @nv = solely(@values) < one(3..7)
    @nv = exclusively(@values) < one(3..7)
    @nv = whichever(@values) < one(3..7)

  these do not work for me

    @nv = select(@values) < one(3..7)
    @nv = extract(@values) < one(3..7)
    @nv = isolate(@values) < one(3..7)
    @nv = locate(@values) < one(3..7)
    @nv = itemize(@values) < one(3..7)


It is tempting to use

    @nv = sift(@values) < one(3..7)
    @nv = winnow(@values) < one(3..7)

however, like 'filter' it is confusing what they focus attention on.
Often they focus on what is being discarded
   To winnow the chaff from the grain
yet sometimes they focus on what is being retained
   it's difficult to winnow out the truth
   it's difficult to sift out the truth

I wonder if some times we might desire what is to be discarded,
that is the complement of the outcome this conversation started with.

    (@keep, @discard) = filter(@values) < one(3..7)
    (@grain, @chaff)  = winnow(@values) < one(3..7)
    (@truth, @lies)   = sift(@values) < one(3..7)


Regards,
Todd

Reply via email to