Re: pattern bugs and comment on intuitive syntax for the New Year
- To: mathgroup at smc.vnet.net
- Subject: [mg115164] Re: pattern bugs and comment on intuitive syntax for the New Year
- From: Armand Tamzarian <mike.honeychurch at gmail.com>
- Date: Mon, 3 Jan 2011 03:56:07 -0500 (EST)
- References: <ifpk7u$bsg$1@smc.vnet.net>
On Jan 2, 9:32 pm, Richard Fateman <fate... at cs.berkeley.edu> wrote: > Guess the results. > > x+3 /. x+c___ -> aha[c] > x /. x+c___ -> aha[c] > x /. x+c___:0 -> aha[c] > > compare to > > x+y+3 /. x+y+c___ -> aha[c] > x+y /. x+y+c___ -> aha[c] > x+y /. x+y+c___:0 -> aha[c] > x+y+a+b /. x+y+c___ :> aha[c] > x+y+a+b /. x+y+c___ :> aha[Plus[c]] > x+y /. x+y+c___ :> aha[Plus[c]] > > I think the requirement for the :0 represents a bug. Maybe the > need for the Plus[], too. The treatment of NullSequences within > a Flat operator could be different, leaving an operator around. > > ............ > > Another item. really, syntax. > > define > > GreaterThan[q_]:= #>q& > gt2=GreaterThan[2] (* a function of one argument. > is that argument > 2? = *) > > mm[2, 10] /. mm[q_, s_?GreaterThan[q]] :> aha[q, s] > > doesn't give aha.. > > mm[2, 10] /. mm[q_, s_?gt2] :> aha[q, s] > > does give aha > > this works, though. > mm[2, 10] /. mm[q_, s_?(GreaterThan[q])] :> aha[q, s] Not with version 8 on Mac OS X 10.6.5 ...but I didn't expect it to. The syntax coloring should indicate why. > > I love that intuitive syntax. None of that excess > parentheses and stuff. (sarcasm) All you had to do is try these to lines: mm[2, 10] /. mm[q_, s_?(# > 2 &)] :> aha[q, s] (works) mm[2, 10] /. mm[q_, s_?# > 2 &] :> aha[q, s] (doesn't work, nor should it be expected to work) mm[2, 10] /. mm[q_, s_?(# > q &)] :> aha[q, s] (doesn't work, nor should it be expected to work) > > This error would have been > much more apparent in Lisp. It is also much more apparent when you read the documentation about the precedence of "?" > > happy new year. thanks