I am trying to understand the true difference/usage of a pure function vs a "normal" function. Besides the argument that a pure function is particularly handy when it comes to a single usage, are there any deeper reasons on why one should go for them rather than the "normal" ones?
They are inevitable to apply when you use such functions as
MapThread mapping binary functions on some expressions. Under binary here I mean functions taking two arguments. In this case, you want that only one position of the binary function is active.
Let me give an elementary example. Let
eq = a*x == b;
be a simple equation and assume that we want to divide both parts by
a. This can be done as follows:
Map[Divide[#, a] &, eq] (* x == b/a *)
This is the place, where the pure function is extremely useful.
Disclaimer: yes, I know, that in the latest MMa version there is a special function,
DivideSides, to make such things. But this is only an example of operations of this sort. There are many others.