¿Quieres saber más sobre programación?  Vale la pena aprender sobre programación funcional y qué lenguajes de programación lo admiten.

5 lenguajes de programación funcional que debes saber

Anuncio Si pasa algún tiempo leyendo sobre tendencias de programación en Internet, habrá escuchado sobre programación funcional. El término se presenta con bastante frecuencia, pero ¿qué significa? Incluso si sabe qué es la programación funcional, es posible que no tenga claro qué idiomas son los más adecuados para ello. Después d

Anuncio

Si pasa algún tiempo leyendo sobre tendencias de programación en Internet, habrá escuchado sobre programación funcional. El término se presenta con bastante frecuencia, pero ¿qué significa?

Incluso si sabe qué es la programación funcional, es posible que no tenga claro qué idiomas son los más adecuados para ello. Después de todo, no todos los lenguajes de programación son iguales. Si bien puede aplicar paradigmas de programación funcional en muchos lenguajes, todavía hay algunos en los que se sentirá mucho más cómodo.

¿Qué es la programación funcional?

Si tiene experiencia en matemáticas, tiene una ventaja en la programación funcional. Esto se debe a que el paradigma de programación funcional trata la informática como funciones matemáticas. Si no tienes una base matemática, esto podría hacerte sentir confundido.

Básicamente, la programación funcional trata las funciones y los datos como inmutables. Usted pasa datos a una función, y generalmente devuelve esos datos transformados o algún otro tipo de datos. En la programación funcional, la función nunca debe cambiar los datos originales o el estado del programa.

Hay una similitud con la filosofía de Unix de que cada programa debe hacer una cosa bien. Una función no debe tocar varias partes de su programa. En cambio, debería tomar su entrada y darle una salida.

Idealmente, las funciones deberían ser puras siempre que sea posible en la programación funcional. Esto significa que, dada la misma entrada, la salida de la función siempre será la misma.

Programación funcional vs. orientada a objetos

Esta es una desviación dramática de algo como la programación orientada a objetos. En la programación orientada a objetos, a menudo tiene un objeto base con varios métodos dedicados a cambiar los datos o el estado que forman parte de ese objeto. Un método puede incluso alterar los datos o el estado si no se establece explícitamente.

En programas prácticos, a veces esto tiene sentido. Dicho esto, puede hacer que los programas sean más difíciles de mantener, ya que no siempre está claro qué está alterando el estado o los datos. La programación funcional se utilizó originalmente en entornos académicos, pero también puede ayudar a prevenir este tipo de problemas.

1. JavaScript

Logotipo de JavaScript

Algunos lenguajes de programación permiten la programación funcional, mientras que otros lo fomentan o incluso lo hacen cumplir. JavaScript cae en la primera categoría. Si bien puede usar paradigmas de programación funcional en el lenguaje, puede usar fácilmente un enfoque orientado a objetos.

Dicho esto, hay muchos paradigmas de programación funcional integrados en JavaScript. Tomemos, por ejemplo, funciones de orden superior. Estas son funciones que pueden tomar otras funciones como argumentos.

JavaScript tiene varias funciones que funcionan con matrices como map(), reduce(), filter() y otras, todas las cuales son funciones de orden superior. Esto le permite encadenarlos para hacer rápidamente todo tipo de cosas con una matriz.

Mientras que JavaScript temprano tenía algunos problemas con la mutabilidad, las versiones más nuevas del estándar ECMAScript proporcionan soluciones. En lugar de la palabra clave catch-all var para definir variables, ahora tiene const y let . El primero le permite definir constantes, como su nombre lo indica. El segundo, let, limita el alcance de una variable a la función en la que se declara.

2. Python

Logotipo de Python

Al igual que JavaScript, Python es un lenguaje generalizado con el que puede usar cualquier número de paradigmas de programación. Python puede tener sus desventajas 4 razones por las que Python no es el lenguaje de programación para usted 4 razones por las que Python no es el lenguaje de programación para usted El lenguaje de programación Python es extremadamente popular, pero aquí hay algunas razones por las que es posible que desee evitar Python . Leer más, pero la programación funcional no es una de ellas. Incluso hay una introducción a la programación funcional en la documentación oficial de Python.

Para comenzar, encontrará muchas de las mismas funciones map(), filter(), reduce() y similares mencionadas anteriormente incorporadas. Al igual que con JavaScript, estas son funciones de orden superior, ya que toman otras funciones como argumentos. En Python, la programación funcional tiene una ventaja en la forma de la palabra clave lambda .

Puede usar expresiones lambda de varias maneras. Una forma de usarlo es como abreviatura para funciones simples. Cuando se asigna a una variable, puede llamar a expresiones lambda exactamente como lo haría con una función Python estándar. La verdadera ventaja de las expresiones lambda viene cuando las usas como funciones anónimas.

Las funciones anónimas también funcionan en JavaScript y otros idiomas en esta lista. Son especialmente útiles cuando se usan con funciones de orden superior, ya que puede definirlas en el acto. Sin funciones anónimas, tendría que predefinir incluso adiciones simples como funciones a medida.

3. Clojure

Logotipo de lenguaje de programación Clojure

A diferencia de JavaScript y Python, Clojure puede no ser exactamente un nombre familiar, incluso entre los programadores. En caso de que no esté familiarizado, Clojure es un dialecto del lenguaje de programación Lisp, que se remonta a finales de la década de 1950. Esto trae consigo una forma muy específica de hacer cosas que resultan perfectas para la programación funcional.

Al igual que otros dialectos de Lisp, Clojure trata el código como datos. Esto significa que el código puede modificarse efectivamente. A diferencia de otros dialectos de Lisp, Clojure se ejecuta en la plataforma Java y se compila en código de bytes JVM. Esto significa que puede funcionar con bibliotecas Java, ya sea que estén escritas en Clojure o no.

A diferencia de los lenguajes anteriores en esta lista, Clojure es un lenguaje de programación funcional desde cero. Eso significa que aboga por la inmutabilidad siempre que sea posible, especialmente dentro de las estructuras de datos.

Clojure no espera que todos los programas sean matemáticamente "demostrables", pero alienta el uso de funciones puras siempre que sea posible.

4. Elm

Logotipo del lenguaje de programación Elm

Uno de los idiomas más nuevos en esta lista, Elm es un lenguaje puramente funcional diseñado inicialmente por Evan Czaplicki en 2012. El lenguaje ha ganado popularidad entre los desarrolladores web, específicamente para crear interfaces de usuario.

A diferencia de todas las entradas anteriores en esta lista, Elm utiliza la verificación de tipo estático. Esto ayuda a garantizar que no haya excepciones en tiempo de ejecución, ya que los errores se detectan en tiempo de compilación. Esto significa menos errores visibles para los usuarios, lo cual es una gran ventaja.

El compilador de Elm se dirige a HTML, CSS y JavaScript. De la misma manera que puede usar Clojure para escribir programas que se ejecutan en Java, puede escribir aplicaciones que usan bibliotecas JavaScript en Elm.

Una diferencia importante entre Elm y otros idiomas aquí es que no encontrará filter() genérico filter(), map() y funciones similares. En cambio, estos se definen por tipo de datos como List.map o Dict.map .

5. Haskell

Logotipo del lenguaje de programación Haskell

Haskell es otro lenguaje puramente funcional, de tipo estático. A diferencia de Elm, Haskell ha existido por un tiempo. La primera versión del lenguaje fue diseñada en 1990. El último estándar es Haskell 2010, mientras que la próxima versión está prevista para 2020.

Como ya hemos explorado, la naturaleza puramente funcional de Haskell significa que, por diseño, las funciones no deberían tener efectos secundarios. Esto lo hace muy adecuado para resolver problemas del mundo real a pesar de las raíces de la programación funcional en la academia.

A pesar de su falta de popularidad, Haskell ha sido empleado en algunos proyectos ampliamente utilizados. El administrador de ventanas Xmonad está escrito completamente en Haskell. Pandoc, que convierte diferentes tipos de marcado hacia y desde otros formatos, también usa el lenguaje.

El map() estándar map(), el filter(), la reduce() y otras funciones de orden superior están presentes, lo que debería permitirle llevar conceptos de JavaScript o Python a Haskell. Si desea aprender más sobre el idioma, Learn You a Haskell for Great Good es un punto de partida popular.

¿Eres nuevo en programación?

Algunos de los términos e idiomas anteriores pueden parecer algo esotéricos si aún no es un programador experimentado. Eso es bueno, ya que saber lo que no sabes es uno de los primeros pasos para convertirte en un mejor alumno.

Algunos de los idiomas mencionados anteriormente son mejores para principiantes que otros. Eche un vistazo a nuestra lista de los mejores lenguajes de programación para principiantes. Notarás que hay un cruce entre las dos listas.

Y si está interesado, consulte nuestra guía para crear un sitio web PHP simple Cómo construir un sitio web PHP simple Cómo construir un sitio web PHP simple ¿Desea crear un sitio web pero no sabe por dónde empezar? Crear un sitio web PHP básico lo pondrá en el camino hacia el desarrollo web. Lee mas .

Explore más sobre: ​​Programación funcional, JavaScript, Python.