Re: basic pattern matching
- To: mathgroup at smc.vnet.net
- Subject: [mg114340] Re: basic pattern matching
- From: Leonid Shifrin <lshifr at gmail.com>
- Date: Wed, 1 Dec 2010 02:13:52 -0500 (EST)
Hi Peter, Cases does not include the zero-th level by default. Both this: Cases[x, a_.*x :> a, {0}] or this: Cases[{x}, a_.*x :> a] will work. Regards, Leonid On Tue, Nov 30, 2010 at 2:22 PM, Peter Pein <petsie at dordos.net> wrote: > Dear group, > > I'm confused regarding defaults. > In[1]:= MatchQ[x,a_*x] > Out[1]= False > this has been expected > > In[2]:= MatchQ[x,a_. *x] > Out[2]= True > this one too, but: > > In[3]:= Cases[x,a_.*x:>a] > Out[3]= {} > should have been {1} shouldn't it? If the pattern matches (see > Out[2]) then with a_. == 1. (Bug or feature?) > > In[4]:= Cases[y+x,a_.*x:>a] > Out[4]= {1} > is OK. > > Any enlightenment is highly welcome, > thanks in advance, Peter > > P.S.: $Version is 8.0 for Linux 64-bit (November 7, 2010) > >