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[56]:= g=Laplacian[f] Out[56]= Function[{x$,y$},(12 #1^2&)[x$,y$]+(12 #2^2&)[x$,y$]] In[57]:= g[1,1] Out[57]= 24 In[58]:= Laplacian[#1^4+#2^4&][1,1] Out[58]= 24 hth, albert