A simple variable:
x = 10;
A simple function:
f[x] = x+2
Let's use longer, more descriptive names:
add_two[x] = x+2
This function will add two to x and that will be the result of the function
(what it returns implicitly)
Here's a simple notation for a function with no name. Notice that it is the
same as above, except that there is no name before the []:
[x] = x+2
On its own, the above unnamed function cannot do anything, so let's set it
to a variable:
add_two = ([x]=x+2)
This variable is now equal to the anonymous function, allowing us to access
the function through the name of the variable.
add_two[2] results in 4
It is now apparent that the following are equivalent:
add_two = ([x]=x+2)
add_two[x] = x+2
This is cool, so now let's make a more generalized solution for the problem
of adding two numbers:
adder[x] = ([y]=x+y)
add_two = adder[2];
add_two[2] results in 4.
also consider calling the adder function in this way:
four = adder[2][2]