Then every time you call the counter, it gets incremented by 1.
1 2 3 4 free variable: count cell content: 4
This technique is known as a closure:
It is a function (Counter) with a nested function (increment).
The function returns a nested function.
The nested function has access to a variable not in its scope (count, a free variable).
So what makes closure special? Well, it is simply a function capable of storing data. This approach is much cleaner than storing values in global variables.