I don't know why, but some years ago, "functional programmers" started to change and twist the definition of functional language step by step, until all those languages fell off and only Haskel remained as "functional enough".
I don't know why, but some years ago, "functional programmers" started to change and twist the definition of functional language step by step, until all those languages fell off and only Haskel remained as "functional enough".
What I do not agree is when "functional programmers" claim that language is not "functional" just because it is not "pure functional" or Haskel alike.
Pure functions. (Only Haskell and friends are strictly pure, as is SQL if you squint.)
Higher order functions. (Java 7 doesn't allow you to pass around a callable function without embedding a link language with reflection or using one-method Runnable.)
First class functions. (Basic, SQL do not have this.)
Generic functions. (C does not have this. C++ does. Java does.)
These are three orthogonal properties a Lang age may have some or all of.