       Mysterious Apply troubles (a bug?)

• To: mathgroup at smc.vnet.net
• Subject: [mg113661] Mysterious Apply troubles (a bug?)
• From: Sam Takoy <sam.takoy at yahoo.com>
• Date: Sat, 6 Nov 2010 05:01:25 -0500 (EST)

```Hi,

I can't seem to produce a working self-contained example, so I'll keep
chipping away at it, until someone spots what's wrong. I keep getting
different behaviors depending on whether I use := or = and here's
another manifestation. I have

TP[tensors__] := Outer[Times, tensors]
sTP[tensors__][t_, a_] :=
Apply[TP, Sequence[ Map[Apply[#, {t, a}] &, {tensors}]]]

The idea of sTP is that if b, c, d, e are tensor functions of (t, a), I
can say

sTP[b, c, d, e][t, a] instead of TP[b[t, a], c[t, a], d[t, a], e[t, a]]

Later, I have the following code (not self-contained, since I'm not
explaining ddSa and ddSA except that sTP is called within them):

f[t_, a_] := t Cos[a]
SurfaceLaplacian[tensor_][t_, a_] := ddSA[ddSa[tensor]][t, a];
lapF[t_, a_] := SurfaceLaplacian[f][t, a]
Derivative[1, 0][lapF][t, a]

And I get the following error:

Function::slotn: Slot number 2 in #1@@{#1,#2}& cannot be filled from
(#1@@{#1,#2}&)[SAB].

I gather that #1@@{#1,#2}&  refers to Apply[#, {t, a}]& and doesn't it
appear that # got mixed with "t" since they are both referred to as #1.

Finally, I can mention that if I use
SurfaceLaplacian[tensor_][t_, a_] = ddSA[ddSa[tensor]][t, a]
that is "=" in place of ":=", the error goes away.

What's going on here?