In Python, I"d like to write a function
make_cylinder_volume(r) which returns another function. That returned function should be callable with a parameter
h, and return the volume of a cylinder with height
h and radius
I know how to return values from functions in Python, but how do I return another function?
Try this, using Python:
import math def make_cylinder_volume_func(r): def volume(h): return math.pi * r * r * h return volume
Use it like this, for example with
volume_radius_10 = make_cylinder_volume_func(10) volume_radius_10(5) => 1570.7963267948967
Notice that returning a function was a simple matter of defining a new function inside the function, and returning it at the end - being careful to pass the appropriate parameters for each function. FYI, the technique of returning a function from another function is known as currying.