What is the deal with functional programming? I see talk about it a lot but to be honest I've never found them at all useful. Why do so many universities apparently teach them?
Start with Why Functional Programming Matters. Then move to Why Why Function Programming Matters Matters. A few bullets:


Functional programming allows you to reason about problems differently
Functional abstraction is very powerful and allows you to DRY up your code in ways not available to other paradigms
In our multi-core future, functional languages may be easier to split into simultaneous tasks (though not-strictly-functional languages are working hard on the problem as well).
It's easier to prove that programs written in pure functional languages (no side effects) are mathematically correct.

