> It's even sometimes presented (quite credibly, imo) as the feature which makes all the other aspects of functional languages worthwhile.
In other words it doesn't matter how we define "function" as long as they are first class? that's nonsense.
Regardless of historical (ab)usage "functional programming" should be re-appropriated to mean (from wikipedia): "a programming paradigm based on mathematical functions rather than changes in variable states".
Functions are from math, and mathematical functions are first of all pure (f(x) = x + 1 shouldn't also give your dog a bath).
In other words it doesn't matter how we define "function" as long as they are first class? that's nonsense.
Regardless of historical (ab)usage "functional programming" should be re-appropriated to mean (from wikipedia): "a programming paradigm based on mathematical functions rather than changes in variable states".
Functions are from math, and mathematical functions are first of all pure (f(x) = x + 1 shouldn't also give your dog a bath).