Inside a function you can define and use other functions. Here's an example that shows a helper function to simplify a complicated calculation.
In the definition of a function you can refer to the arguments of the function. You can also refer to variables outside the function in the enclosing function. Here's the same example but with a constant 1 factored out as a variable.
That was actually the first example of a closure! The outer function closes over the inner functions, and the inner functions can use variables from the outer function.
An important case is when the inner function refers to arguments from the enclosing outer function. Arguments are like variables, you can refer to them from inside in the same way.
Here is an example of a function create that takes an argument x and returns a new function. The returned function takes no arguments and returns x.
In the example above, even after the create function finishes the function it returns keeps working. That's the magic of closures, the reference to x in the outer scope is still valid even after the outer function finishes. Deep, man.
Define a function named genesis that takes two arguments x and y. It should return a function that always returns x + y.