MathGroup Archive 2010

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

Search the Archive

Re: Re: What does & mean?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg107118] Re: [mg107074] Re: [mg107050] What does & mean?
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Wed, 3 Feb 2010 06:10:21 -0500 (EST)
  • References: <201002011114.GAA22737@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

OddQ@#2 is the same as OddQ[#2].

Style[#, c, Bold, 18] & /@ #1 is the same as Map[Style[#, c, Bold, 18],#1]

#1 is the first argument of a function, #2 is the second argument, ## is  
the sequence of ALL its arguments, etc.

The example is poor code, however.

i is scoped in Module but never used, whereas y, z, and c are used but not  
scoped.

Hence the code would be better written as

f[x_List, m_Integer] := Module[{y, z, c}, y = Partition[x, m];
    z = MapThread[(c = If[OddQ@#2, Red, Blue];
        Style[#, c, Bold, 18] & /@ #1) &, {y, Range@Length@y}];
    Infix[Flatten@z, Style["+", 18]]];

f[Table[1, {15}], 3]

The argument # of Style[#, c, Bold, 18] & /@ #1) & is in a different scope  
 from the #1 and #2 mentioned, so it would be clearer to write:

f[x_List, m_Integer] := Module[{y, z, c, style}, y = Partition[x, m];
    style = Style[#, c, Bold, 18] &;
    z = MapThread[(c = If[OddQ@#2, Red, Blue];
        style /@ #1) &, {y, Range@Length@y}];
    Infix[Flatten@z, Style["+", 18]]];

f[Table[1, {15}], 3]

or

f[x_List, m_Integer] := Module[{y, z, c, style}, y = Partition[x, m];
    style[item_] := Style[item, c, Bold, 18];
    z = MapThread[(c = If[OddQ@#2, Red, Blue];
        style /@ #1) &, {y, Range@Length@y}];
    Infix[Flatten@z, Style["+", 18]]];

f[Table[1, {15}], 3]

or:

f[x_List, m_Integer] :=
   Module[{y = Partition[x, m], z, style, color},
    style[items_List, i_] := Style[#, color[i], Bold, 18] & /@ items;
    color[i_?OddQ] = Red;
    color[i_?EvenQ] = Blue;
    z = MapThread[style, {y, Range@Length@y}];
    Infix[Flatten@z, Style["+", 18]]];

f[Table[1, {15}], 3]

or:

f[x_List, m_Integer] :=
   Module[{y = Partition[x, m], z, style, color},
    style[{i_}][item_] := Style[item, color[i], Bold, 18];
    style[items_List, i_] := style[i] /@ items;
    color[i_?OddQ] = Red;
    color[i_?EvenQ] = Blue;
    z = MapIndexed[style, y];
    Infix[Flatten@z, Style["+", 18]]];

f[Table[1, {15}], 3]

The code has gotten more and more verbose as I went along, but a careful  
study might clarify things for you.

Bobby

On Tue, 02 Feb 2010 02:27:20 -0600, cire g <eric.phys at gmail.com> wrote:

> I have the same problem and I had been using Mathematica for a while,
> for example can any one explain the code to color a sum:
>
> f[X_List, m_Integer] := Module[{Y},
>    Y = Partition[X, m];
>    Z = MapThread[(c = If[OddQ@#2, Red, Blue];
>        Style[#, c, Bold, 18] & /@ #1) &, {Y, Range@Length@Y}];
>    Infix[Flatten@Z, Style["+", 18]]];
>
> f[Table[1,{15}],3]
>
> of thread  [mg107001]
>
> in the documentation is not a good explaining the use of @,#, & etc...
> that make those codes very hard to decipher...
>
> bests
>
>
>
> Michael Knudsen wrote:
>> Hi,
>>
>> I have recently bought Mathematica, and I have a really tough time
>> getting started. I'm reading the various documents found under
>> "Complete Documentation" at the Mathematica homepage, but it doesn't
>> feel like the right place to start.
>>
>> For example, I'm now trying to solve some simple differential
>> equations, and the documentation provides the following example:
>>
>> A = {{4, -6}, {1,-1}};
>>
>> X[t_] = {x[t], y[t]};
>> system = MapThread[#1 == #2 &, {X'[t], A.X[t]}];
>>
>> sol = DSolve[system, {x,y}, t]
>>
>> However, there is no explanation of how & works here (and it isn't in
>> the MapThread documentation either). Where should one start reading in
>> order to understand basic constructs like this? This particular
>> example is really nasty, since & is generally ignored by search
>> engines.
>>
>> Thanks,
>> Michael Knudsen
>>
>>
>>
>
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: Re: Re: How to combine graphics
  • Next by Date: Re: Re: Re: How to combine graphics
  • Previous by thread: Re: Re: What does & mean?
  • Next by thread: Re: Re: Re: What does & mean?