# Functions that Return Functions

## Master R

I love the idea of writing a function that returns another function. For example, say we want to compute $x^n$ for any given $x$ and $n$. We can write a function that takes $n$ as input and returns a function, which can further take $x$ as input and returns the result. Here’s the R code:

Say we want to find $x^2$, we can first run make.power(2) to construct a function that will square any $x$ passed to it. Let’s call it power2. We can then use power2(x) to calculate $x^2$ for any $x$ value. For example, power2(3) gives the value of $3^2$, and power2(5) gives the value of $5^2$, and etc.

You can read Steve Losh’s post for a thorough treatment, where he showed numbers are really made of lists, and lists are really just functions that returns other functions.