An article (by me) that provides a (somehow unconventional) definition of Functional Programming. This definition is rooted in the concept of first class functions (called procedures in that article). Any languages that support first class procedures are by my definition functional languages.

I also explore the theoretical potential of functional programming, its tremendous power, and how (when combined with syntactic abstractions) it brings us close to declarative programming.