       Re: How to pass a function to a function?

• To: mathgroup at smc.vnet.net
• Subject: [mg93657] Re: How to pass a function to a function?
• From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
• Date: Fri, 21 Nov 2008 05:30:57 -0500 (EST)
• References: <gg3c9m\$k5b\$1@smc.vnet.net>

```Hi,

<< VectorAnalysis`

and Laplacian[f] or Laplacian[f,coordsys] as th help
say.

And your code would never get the function
> f[x_, y_] := x^4 +y^4
> g = Laplacian[f];

will do nothing, because the Laplacian does not know
what variables should be used for the computation
of the derivative.

But what is with

f[x_, y_] := x^4 + y^4

myLaplace[f_Symbol] := Module[{down, vars},
down = DownValues[f] ;
vars = Cases[down, _Pattern, Infinity] /.
Verbatim[Pattern][a_, Blank[]] :> a;
Plus @@@ Outer[D[#1, {#2, 2}] &, Last /@ down, vars] /. {a_} :> a
]

and

myLaplace[f]

gives

12 x^2 + 12 y^2

Regards
Jens

Aaron Fude wrote:
> Hi,
>
> How does one write a call a function that represents an operator? In
> other words, it takes a function and returns another function.
>
> For example, if you think of the Laplacian I want to do something like
> this (pseudo code):
>
> f[x_, y_] := x^4 +y^4
> g = Laplacian[f];
>
> N[g[1, 1], 50]
>
> How would one write "Laplacian"?
>