       Re: How do you control evaluation when using apply?

• To: mathgroup at smc.vnet.net
• Subject: [mg130803] Re: How do you control evaluation when using apply?
• From: Christoph Lhotka <christoph.lhotka at univie.ac.at>
• Date: Fri, 17 May 2013 04:33:46 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-outx@smc.vnet.net
• Delivered-to: mathgroup-newsendx@smc.vnet.net
• References: <20130516072800.B38966A00@smc.vnet.net>

```Hello,

both of your versions work fine in M9.

Here is even a shorter one:

In[]:= jacFun[func_, vars_] :=
Module[{f}, f = Function @@ {{x, y}, D[func, {vars}]};
f @@ # &]

In[]:=jacFun[{Sin[x y], Cos[x + y]}, {x, y}][{10, 2}]

Out[]:={{2 Cos, 10 Cos}, {-Sin, -Sin}}

BR,

Christoph

On 05/16/2013 09:28 AM, Brentt wrote:
> Why does this work
>
> In: = jacobianFunction[func_, vars_List] := Module[{f},
>     f = Function[Evaluate[vars], Evaluate[D[func, {vars}]]];
>    f
>     ];
> jacobianFunction[{Sin[x y], Cos[x + y]}, {x, y}] @@ {10, 2}
>
> out:= {{2 Cos, 10 Cos}, {-Sin, -Sin}}
>
> But this does not (the goal is to make the function take a point as an
> argument)
>
>
> In: = jacobianFunction[func_, vars_List] := Module[{f},
>     f = Evaluate[Function[Evaluate[vars], Evaluate[D[func, {vars}]]]];
>    f@@ # &
>     ];
> jacobianFunction[{Sin[x y], Cos[x + y]}, {x, y}][{10, 2}]
>
>
>
> I can't get f@@ # & to evaluate properly (I've tried wrapping it in
> ReleaseHold and evaluate statements, nothing seems to get it to evaluate.
>
> I know I can just rewrite the function to take the point but I'm just
> curious why it won't work.
>
>

```

• Prev by Date: Re: Work on Basic Mathematica Stephen!
• Next by Date: Re: Work on Basic Mathematica Stephen!
• Previous by thread: How do you control evaluation when using apply?
• Next by thread: Re: How do you control evaluation when using apply?