Re: slot argument weirdness

*To*: mathgroup at smc.vnet.net*Subject*: [mg83968] Re: slot argument weirdness*From*: dh <dh at metrohm.ch>*Date*: Wed, 5 Dec 2007 07:22:52 -0500 (EST)*References*: <fj37b2$hok$1@smc.vnet.net>

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. >