Let's start with an example of a function with two variables.
The function can be viewed as a function in two variables. Often you consider not as a free variable but as a fixed parameter of a family of functions :
This interpretation reduces a function in two variables to a function in one variable given a fixed parameter value . The process of defining a new function by fixing (freezing) one or several parameters of a function is called partial application.
Partial applications are easily created using the Python module functools, which provides a function called partial for precisely this purpose. We illustrate this by constructing a function that returns a sine for a given frequency:
import functools
def sin_omega(t, freq):
return sin(2 * pi * freq * t)
def make_sine(frequency):
return functools.partial(sin_omega, freq = frequency)
fomega=make_sine(0.25)
fomega(3) # returns -1.0
In the last line, the newly created function is evaluated at .