Pick function

*To*: mathgroup at smc.vnet.net*Subject*: [mg62906] Pick function*From*: Zdenek Buk <zdenek at buk.cz>*Date*: Thu, 8 Dec 2005 00:04:56 -0500 (EST)*Organization*: Czech Technical University*Sender*: owner-wri-mathgroup at wolfram.com

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} Out[1]:= {1, a -> b, x, c -> 1, d -> e + f, g + h} In[2]:= l2=Table[i,{i,Length[l]}] Out[2]= {1,2,3,4,5,6} Now try to select the "Rules": ----------------------------- In[3]:= Cases[l,x:(_->_)] Out[3]= {a->b,c->1,d->e+f} OK, this is what I expected. but... Try to use the Pick function: ---------------------------- In[4]:= sel1=Pick[l,l,_->_] Out[4]= {a->b,c->1,d->e+f,0} In[5]:= sel2=Pick[l2,l,_->_] Out[5]= {2,4,5} As you can see, the the first command returned 4 items, but the second command returned only 3 items (as expected). I really don't understand why there is the last "0" value in "sel1" list. I expected, that "Pick[l,l,_->_]" command should return: "{a->b,c->1,d->e+f}". Is here somebody who can explain this strange behavior for me, please? Zdenek Buk

**Follow-Ups**:**Re: Pick function***From:*Andrzej Kozlowski <akoz@mimuw.edu.pl>