MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

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


  • Prev by Date: Re: SoundNote does not accept "H"
  • Next by Date: Re: RegionPlot ignores the AxesLabel Option?
  • Previous by thread: Version 4: Zoom2D and GetGraphicsCoordinates palettes combined
  • Next by thread: Re: What is a good way of returning a function from a Module[]?