MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Just another Mathematica "Gotcha"

  • To: mathgroup at smc.vnet.net
  • Subject: [mg120864] Re: Just another Mathematica "Gotcha"
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Sat, 13 Aug 2011 06:49:38 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201108120905.FAA17157@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

The statement behavior is NO different from that of

a + b * c

where * has higher precedence than +.

a = Series, b = Normal, c = {b2 -> 0}, // replaced by +, and /. replaced  
by *, and the two statements are identical.

a + b*c /. {a -> Series, b -> Normal, c -> {b2 -> 0},
   Times -> Replace, Plus -> PostFix}

PostFix[Series, Normal]

Some found it confusing that Normal /. {b2 -> 0} evaluates to Normal...  
but the same thing happens in b * c if c == 1.

a + b*c /. c -> 1

a + b

Bobby

On Fri, 12 Aug 2011 04:05:46 -0500, gac <g.crlsn at gmail.com> wrote:

> I think I see. If I compare your output with that for the other form:
>
> In[1]:= FullForm[Hold[
>   Series[a + (b1 + b2) x, {x, 0, 1}] /. {b2 -> 0} // Normal]]
>
> Out[1]/FullForm=  
> Hold[Normal[ReplaceAll[Series[Plus[a,Times[Plus[b1,b2],x]],List[x,0,1]],List[Rule[b2,0]]]]]
>
> Normal acts only after ReplaceAll applies the List to the Series, yes?
>
> Someone suggested only using //-type operations at the end of statement,  
> e.g., // Normal, // MatrixForm, // TraditionalForm, etc.  I think this  
> is a good idea.  I've been doing this without having a good reason  
> (except that "form follows function" ^_^ ).  Now, it seems that I have a  
> stronger reason.
>
> Thanks.
>
> Glenn
>


-- 
DrMajorBob at yahoo.com




  • Prev by Date: Re: Double Clicking (was: Just another Mathematica "Gotcha")
  • Next by Date: Re: Getting TraditionalForm to put in a multiplication sign.
  • Previous by thread: Re: Just another Mathematica "Gotcha"
  • Next by thread: Re: Just another Mathematica "Gotcha"