Re: Just another Mathematica "Gotcha"
- To: mathgroup at smc.vnet.net
- Subject: [mg120844] Re: Just another Mathematica "Gotcha"
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Fri, 12 Aug 2011 05:07:05 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201108091119.HAA15770@smc.vnet.net> <201108110910.FAA07160@smc.vnet.net>
- Reply-to: Murray Eisenberg <murray at math.umass.edu>
Yes, in actuality I often do that, too -- more often than looking up the precedence in the docs. Don't know why I suggested the latter and not the former. (Perhaps to hammer home my point.) On 8/11/11 5:10 AM, DrMajorBob wrote: > No reading or experimentation is necessary. > > When I wonder what operator has higher precedence -- as I often do -- I > double-click on each operator in turn, and automatic selection expansion > tells me what I need to know. > > Bobby > > On Wed, 10 Aug 2011 05:46:13 -0500, Murray Eisenberg > <murray at math.umass.edu> wrote: > >> There you go again, insinuating that something is wrong with Mathematica >> when it's just something you don't understand (or simply just don't >> like). And ratcheting up the rhetoric with language such as "by any >> normal rules of interpretation or ordinary interpretations". >> >> If you really do want to understand what's going on here, you could take >> a moment to experiment or read the documentation and treat it as a >> "teachable moment". >> >> You could try something simpler, e.g.: >> >> expr = a + b x; >> expr // f /. b -> 0 >> expr /. b -> 0 // f >> >> Or look at the FullForms of the latter two expressions (after wrapping >> each in Hold). >> >> Or try forcing the order of precedence with the first expression: >> >> (Series[a + (b1 + b2) x, {x, 0, 1}] // Normal) /. {b2 -> 0} >> >> Or search the Documentation Center for "order of precedence", say, and >> in the first hit peruse the table documenting order of precedence in >> tutorial/OperatorInputForms. >> >> Yes, there are dangers in deviating from straightforward head[[expr]] >> syntax. You can either stick with that or else learn what you need to >> know to avoid, or at least deal with, any surprises. >> >> On 8/9/11 7:19 AM, AES wrote: >>> Seems as if the following two expression should yield the same output >>> -- seems that way to me anyway -- but they don't. I'll hide the >>> actual outputs down below so Mathematica gurus (or "ordinary users") >>> can make their predictions as to which one does what. >>> >>> In[1]:= Series[a+(b1+b2)x,{x,0,1}] //Normal /.{b2->0} >>> >>> In[2]:= Series[a+(b1+b2)x,{x,0,1}] /.{b2->0} //Normal >>> >>> My conclusions: >>> >>> 1) By any normal rules of interpretation or ordinary interpretations >>> of these statements, they both should do the same same thing. >>> >>> 2) This is just another Mathematica "Gotcha" -- and not a >>> particularly forgivable one.... >> > > -- Murray Eisenberg murray at math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2859 (W) 710 North Pleasant Street fax 413 545-1801 Amherst, MA 01003-9305
- References:
- Just another Mathematica "Gotcha"
- From: AES <siegman@stanford.edu>
- Re: Just another Mathematica "Gotcha"
- From: DrMajorBob <btreat1@austin.rr.com>
- Just another Mathematica "Gotcha"