I do wonder though, why functional programming hasn't taken off in a bigger way? Languages like F# are certainly very good, but their usage remains fairly small, what do they lack that would allow them to take off? Or is it a problem with too few programmers being trained in functional and not being comfortable with it?