Los lenguajes no son ni fáciles ni difíciles en mi opinión. La programación funcional es en sí un paradigma de programación que requiere manejar esquemas de resolución de problemas, esquemas mentales al fin y al cabo, radicalmente diferentes a la imperativa. Cualquier lenguaje funcional como haskell, scheme, lisp,... ofrece recursos para la implementación rápida y eficiente de soluciones a problemas muy complejos si se abordan con lenguajes imperativos. Muy especialmente, permiten la representación y manejo de conjuntos, listas, árboles, etc. potencialmente infinitos, por poner un ejemplo.
Re:Scheme es difícil
(Puntos:2, Inspirado)( http://www.supportfactory.net/ )