       Re: How to pass a function to a function?

• To: mathgroup at smc.vnet.net
• Subject: [mg93656] Re: How to pass a function to a function?
• From: Albert Retey <awnl at gmx-topmail.de>
• Date: Fri, 21 Nov 2008 05:30:46 -0500 (EST)
• References: <gg3c9m\$k5b\$1@smc.vnet.net>

Aaron Fude schrieb:
> Hi,
>
> How does one write a call a function that represents an operator? In
> other words, it takes a function and returns another function.

If you need to return a function, then do so:

Laplacian[f_] := Function[{x, y},
Derivative[2, 0][f][x, y] + Derivative[0, 2][f][x, y]
]

or, if you want the derivatives not to be calculated for every call of
the resulting function but only when defining the Laplacian:

Laplacian[f_] := With[{
d2fdx2 = Derivative[2, 0][f],d2fdy2 = Derivative[0, 2][f]
},
Function[{x, y}, d2fdx2[x, y] + d2fdy2[x, y]]
]

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

This is the above definition in action, note that it also works for pure
functions:

In:= g=Laplacian[f]
Out= Function[{x\$,y\$},(12 #1^2&)[x\$,y\$]+(12 #2^2&)[x\$,y\$]]
In:= g[1,1]
Out= 24
In:= Laplacian[#1^4+#2^4&][1,1]
Out= 24

hth,

albert

• Prev by Date: Re: ListPlot w/ Dynamic[] choice of external data files
• Next by Date: Re: Mathematica 7 is now available
• Previous by thread: Re: How to pass a function to a function?
• Next by thread: Re: How to pass a function to a function?