Without actually saying the words, this post makes a good introduction to the [expression problem][0], trading the ease of adding types for the ease of adding behaviors.
[TINSTAAFL][1], but what a functional programming paradigm takes away it replaces with brevity, concision, additional type safety, and greater opportunities for the compiler to restate your algorithms in a form more conducive to parallelization and concurrency.
[TINSTAAFL][1], but what a functional programming paradigm takes away it replaces with brevity, concision, additional type safety, and greater opportunities for the compiler to restate your algorithms in a form more conducive to parallelization and concurrency.
[0]: http://c2.com/cgi/wiki?ExpressionProblem
[1]: http://en.m.wikipedia.org/wiki/There_ain't_no_such_thing_as_...