What's functional programming, anyway?

Can you believe people are still trying to come up with a good definition or explanation of what functional programming is? Paul Krill is a journalist with InfoWorld. Here's an article he just wrote: http://www.infoworld.com/article/3033912/application-development/fu... 

"A function, Odersky says, is a piece of code that maps inputs to outputs and has no other effects beyond that. "It's the mathematical definition of function we are using here. Sometimes these functions are called 'pure,' to distinguish them from, say, functions in C." A functional language focuses on programming with pure functions, making it easy and powerful to do so, says Odersky, who founded Typesafe, the provider of the Typesafe JVM application development platform.

Functional programming can be combined with other paradigms, he notes. "For instance, functional goes really well with object-oriented. Scala is a functional language in that sense. I agree that just having lambdas does not make a language functional; it is necessary but not sufficient."