Today I got asked the question:
In JavaScript (the best language) what is the difference between these two:
function() { ... }
// and
function blah() { ... }
The first is an anonymous function.
The second is a named function.
Anonymous functions are one time deals.
Named functions can be used as many times as needed. Even zero times.
An example of an anonymous function:
[1,2,3].map(n => n + 1);
The function (n) => n + 1
is anonymous. It has no name.
But you could define it as a named function:
const addOne = (n) => n + 1;
And then you could repeat the map with the named function:
[1,2,3].map(n => addOne(n));
// or more simply,
[1,2,3].map(addOne);
And likewise you could use the function again and again:
const incremented = addOne(0); // 1
const again = addOne(incremented); // 2
const third_time = addOne(5); // 6
Even if your function is a one-and-done deal, naming functions can help you better explain your code to others (or yourself 5 minutes from now).
As soon as you name an anonymous function, it is no longer anonymous.
And that’s all I have to say about that.