What is a good way of returning a function from a Module[]?
- To: mathgroup at smc.vnet.net
- Subject: [mg83287] What is a good way of returning a function from a Module[]?
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Sat, 17 Nov 2007 05:10:37 -0500 (EST)
What is an elegant way of returning a function from a Module[]? Module[{a, b}, a = 1; b = a+1; (a+b+#)&] does not work because Function[] holds its arguments. The best way I could find was Module[{p, q}, p = 1; q = p+1; With[{a = p, b = q}, (a+b+#)&]] Is there a nicer/more concise way of doing this? This is a simplified example, but the important points are: 1. The returned function may depend on more than one parameter ('a' and 'b'; let's forget that in this case their sum could have been computed inside the Module[]). 2. 'a' and 'b' are not calculated independently. The value of 'a' is needed to find 'b' Szabolcs