|
[Date Index]
[Thread Index]
[Author Index]
Re: Re: Pick function
----- Original Message -----
From: "Andrzej Kozlowski" <akoz at mimuw.edu.pl>
To: mathgroup at smc.vnet.net
Subject: [mg62953] [mg62928] Re: [mg62906] Pick function
>
> On 8 Dec 2005, at 14:04, Zdenek Buk wrote:
>
>> Hi All,
>>
>> I have found a strange behavior of the "Pick" function.
>>
>> Testing data:
>> ------------
>> In[1]:=
>> l = {1, a -> b, x, c -> 1, d -> e + f, g + h}
>>
<snip>
>>
>> Try to use the Pick function:
>> ----------------------------
>>
>> In[4]:=
>> sel1=Pick[l,l,_->_]
>>
>> Out[4]=
>> {a->b,c->1,d->e+f,0}
>>
<snipped explanation>
>
> I am not completely sure whether this was entirely intended by the
> designer's of Pick and whether it would not be better if Pick had an
> option specifying the level at which the attempted matching should
> take place, but in any case, it shows that you have to use it carefully.
>
> Andrzej Kozlowski
>
Hi,
The explanation from Andrzej is correct, and I agree the behavior of Pick
can be somewhat confusing at times. The key to remember is that the full
nested structure of the selector (2nd) argument is used.
Having a level specification in Pick is probably not a bad idea, although
it's really intended for use with selectors that have the exact structure of
the result you want. So you could do something like
Pick[l, MatchQ[#, _ -> _] & /@ l]
although that wouldn't be very efficient for this particular case.
Oyvind Tafjord
Wolfram Research
Prev by Date:
Re: Skewness problem
Next by Date:
Re: Pick function
Previous by thread:
Re: Pick function
Next by thread:
Re: Pick function
|