Re: Cases

*To*: mathgroup at smc.vnet.net*Subject*: [mg50442] Re: [mg50423] Cases*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Sat, 4 Sep 2004 01:43:18 -0400 (EDT)*References*: <200409030735.DAA15539@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

*This message was transferred with a trial version of CommuniGate(tm) Pro* On 3 Sep 2004, at 16:35, Blimbaum, Jerry AA R22 wrote: > *This message was transferred with a trial version of CommuniGate(tm) > Pro* > > Given: x = {a,b,c,d,d}; > > Applying Cases[x,d] gives an output of {a,b,c}...... > > However, Cases[x,Not[d]] gives as output an empty list { }... I > expected {a,b,c}..... > > Why didnt I get that? > > This issue came up when using Thread on vectors...and in some cases the > Thread resulted in 0 == 0 so it's output in the list was > True....and I > wanted to remove them.... > > thanks.....jerry blimbaum > > This is because Not[d] is not a pattern matched by something that is not d. There are several ways to construct what is effectively such a pattern, e.g. Cases[x,_?(#=!=d&)] {a,b,c} Cases[x,_?(Not[MatchQ[#,d]]&)] {a,b,c} but I don't think there is any way that does not use PatternTest. That means that this is a situation you can make your program simpler if you use Select, e.g. Select[x,#=!=d&] {a,b,c} Andrzej Kozlowski Chiba, Japan http://www.mimuw.edu.pl/~akoz/

**References**:**Cases***From:*"Blimbaum, Jerry AA R22" <jerry.blimbaum@navy.mil>