Translate

domingo, 25 de agosto de 2013

Clojure es un lenguaje funcional

Clojure es un lenguaje funcional pero no es un lenguaje funcional puro como Haskell. Es un lenguaje funcional con las siguientes características:

  • Las Funciones son first-class objects, lo que sería que podemos crearlas, pasarlas como parámetros, guardarlas en variables, retornarlas, como cualquier otro tipo de datos.
  • Los datos son inmutables
  • Las funciones son puras, lo que significa que una función siempre devuelve el mismo valor con iguales parámetros; no mantiene estados.

La programación funcional es fácil de entender, es menos propenso a errores y mucho más fácil de reutilizar. Por que?

  • Es simple, sin loops, ni variables, ni mutables estados.
  • Es thread safe.
  • Es paralelizable, como las funciones no mantienen estados se pueden resolver de forma paralela, lo que aprovecha mucho más múltiples micros.