This is a decent analysis. I like to think of functional programming as a style more than as a language feature. Of course, certain language features make functional style easier and more elegant. By this definition, all languages are functional, but some are more functional than others.