But look at the Wikipedia page on functional programming: under concepts, the first thing that is listed is higher order functions, which is what I'm talking about. Pure functions (i.e. non-mutable state) is also listed, but any language can use pure functions, even if it doesn't restrict you to using them like a pure functional language does.Brendan wrote:Various imperative programming languages have some or all of these things. They have nothing to do with functional programming.NickJohnson wrote:All you need for real functional programming is a) closures, b) garbage collection, and c) proper lexical scoping.
Edit: so yes: I'm saying that various imperative languages are capable of functional programming, although those imperative languages are almost all very high level scripting languages (like Python and Lua.) Functional programming is a way of thinking, just like OOP, and therefore can be done in any language with certain basic facilities. In addition, Rusky's code didn't use any real functional programming by my definition; only topical language features that often appear in functional languages. But that's because it wasn't a functional language sort of problem.