I’ve quoted below two excerpts of the post where imperative and functional programming are characterized.
Imperative Programming is a programming paradigm that describes computation in terms of correctly ordered statements that change a program’s state.
Functional programming is a programming paradigm that describes computation as the evaluation of mathematical functions avoiding state, mutual data and therefore side effects.
I hope these quotes and the post itself perk your curiosity. I have no real life experience working with a functional language to create a large application, so I can’t give you an objective opinion about how appropriate functional programming could be to write this kind of application. Nevertheless, based on the emergence of languages like Scala and F#, it seems the general feeling out there is that a hybrid language (one that allows you to do OOP and FP) seems to be good idea.
Scala projects at Twitter (scroll down to Scala)