Re: beginner question about syntax
- To: mathgroup at smc.vnet.net
- Subject: [mg109089] Re: beginner question about syntax
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Mon, 12 Apr 2010 22:59:53 -0400 (EDT)
On Apr 12, 2010, at 6:53 AM, AK wrote: > Hi, > > I'm a fairly seasoned user of another system who's just started using > Mathematica. Although at the moment I'm just playing around with > Mathematica (without any specific task at hand), trying to figure out > the Mathematica way of doing things from the documentation > (particularly the examples) there are some things I can't seem to wrap > my head around. For example, can anyone explain the outputs for the > inputs below: > In[1]:== Map[Function[x, x^2], a] > Out[1]:== a > In[2]:==Map[Function[x, x^2], a + b + c] > Out[2]:== a^2 + b^2 + c^2 > > If I enclose the second argument of Map[] inside a list, I get the > expected output, but I don't understand what the operations given in > the example above represent and why the outputs are what they are. > Would appreciate an explanation for what's going here... thank you in > advance. In the expression: Map[Function[x, x^2], a] a is atomic, Map doesn't operate on such objects so it simply returns a unevaluated. In Map[Function[x, x^2], a + b + c] the Head of the expression is Plus (the FullForm of a+b+c is Plus[a,b,c]) so it maps the function over the arguments to Plus giving the result you see. You can confirm this using Trace (Debug) In[61]:== Trace[Map[Function[x,x^2],a+b+c]] (Debug) Out[61]== {Function[x,x^2]/@(a+b+c),Function[x,x^2][a]+Function[x,x^2][b]+Function[x,x^2][c],{Function[x,x^2][a],a^2},{Function[x,x^2][b],b^2},{Function[x,x^2][c],c^2},a^2+b^2+c^2} Unfortunately the Trace of the first expression is not informative. Putting the second argument inside of a list makes Map operate over the elements of the list. For further information study level specifications and expression structure in the help text. Regards, Ssezi