MathGroup Archive 2007

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

Search the Archive

Re: slot argument weirdness

Hi Jerry,

you are nearly there. If you set:

  m = {{#1, #2}, {#2, #1}}&;

all is well.

The reason for this is, that ...& is a function. Functiosn has the 

attribute HoldAll what prevents from the replacement of m by its value. 

You get a function that always returns m. This leaves m that is 

subsequently evaluated. Another solution that forces the evaluation, is:

Apply[Evaluate[m] &, v]

hope this helps, Daniel

Jerry wrote:

> I have to produce some bulky matrices which are described by 

> two parameters and it seems the easiest way to produce them 

> is as follows (I took out all the complexity and just left 

> in the slots to illustrate my problem). v is the parameter 

> array.


> v = {2, 5};

> myMatrix=Apply[{{#1, #2}, {#2, #1}} &, v]


> giving     {{2, 5}, {5, 2}}    and all is well.


> But since the actual form in the first argument in Apply is 

> really a large messy thing, I thought I'd produce it just 

> once in the notebook and represent it with:


> m = {{#1, #2}, {#2, #1}};


> But geez, this doesn't work at all:


> MyMatrix2= Apply[m &, v]


> gives      {{#1, #2}, {#2, #1}}


> I've tried a lot of things to make this work but have failed 

> completely. If someone can tell me that there is absolutely 

> no representation of the slot configuration that will do 

> what I want, then I can quit trying. Or is there? Thanks for 

> any info.


  • Prev by Date: Re: slot argument weirdness
  • Next by Date: Re: slot argument weirdness
  • Previous by thread: Re: slot argument weirdness
  • Next by thread: Re: slot argument weirdness