> The real purpose behind functional programming is to separate the functional description of what should happen from the mechanics of how it actually does happen.
I found this statement entirely fascinating, as it reminds me of the definition and motivation of interface in Java and many other languages. And no-one has ever claimed Java to be a functional language because of interfaces!