Fingeremos que vamos a completar una tarea ahora: escriba el código JavaScript tanto como sea posible de acuerdo con los principios de los idiomas funcionales.
La próxima serie de artículos es dejar que usted y yo comiencen este viaje. Primero, necesitamos corregir algunos de los conceptos de errores de lenguaje funcional que pueden estar en su mente.
Las fórmulas funcionales en el idioma JS se malinterpretan seriamente.
Obviamente, hay muchos desarrolladores que desean usar el paradigma funcional de JavaScript todos los días. Diría que hay una parte más grande de desarrolladores de JavaScript que realmente no entienden estas cosas.
Creo que la razón de esto es que la mayoría de los idiomas de desarrollo utilizados en el servidor web se derivan de C, y todos saben que estos idiomas no son idiomas funcionales.
Generalmente hay dos niveles de confusión. La primera capa trata sobre el uso en el siguiente ejemplo, que es un uso muy común en jQuery:
$ (". Registro"). Click (Function (Event) {$ ("#SignupModal"). show (); event.preventDefault ();});En el código anterior: pasamos una función anónima como parámetro, que es la función de devolución de llamada infame en JavaScript. ¿Se llamarán estas funciones? ¡De nada!
El ejemplo anterior ilustra una característica clave de un lenguaje funcional: una función es un parámetro. Por otro lado, este ejemplo viola casi todos los paradigmas de programación funcional que pueden violarse utilizando solo tres líneas de código.
El segundo nivel de duda es más sutil. Mira esto: solo unos pocos desarrolladores de JS de moda se ven a sí mismos así:
Bueno, ¡eso es realmente bueno! Pero ya tengo una comprensión completa de la programación funcional, y uso subsenscore.js en todos mis proyectos.
Underscore.js es una biblioteca JavaScript muy famosa y ubicua. Por ejemplo: Supongamos que tengo un conjunto de palabras y necesito las dos primeras letras para cada palabra. Esto es muy sencillo de escribir con un guión bajo.js:
var firstTwoletters = function (words) {return _.map (words, function (word) {return _.first (word, 2);});};Mira este ejemplo de JavaScript. Utilicé las funciones exquisitas y prácticas en la fórmula de función: _.map y _.first. ¿Qué piensas de esto?
Aunque las funciones como SUNSCORE.JS y _.MAP son paradigmas funcionales útiles, armar estas cosas como esta en este ejemplo todavía me hace un poco difícil de entender. ¿Realmente necesitamos hacer esto?
Si comenzamos a pensar en cómo ser más "funcionales", tal vez podamos reescribir el ejemplo anterior como este:
// ... un poco de magia firsttwoletters = map (primero (2));
Si lo piensa cuidadosamente, esta línea de código tiene el mismo efecto que las 5 líneas anteriores. Muchas palabras son solo parámetros o marcadores de posición. La lógica real es combinar la función del mapa, la primera función y la constante 2 de una manera significativa.
Algunas personas pueden preguntarse: ¿Cuál es la magia en este ejemplo? Después de todo, es un poco como presumir de decir que cualquier ejemplo es mágico, ¿verdad?
Estoy planeando usar los siguientes dos artículos para explicar cuál es el ejemplo anterior es mágico. Si tiene curiosidad, puede continuar leyendo.
Esta serie de blogs es ayudarlo a aplicar la belleza de la programación funcional a su código JavaScript.
En la siguiente sección, discutiré varios elementos de funcionamiento y no funcional en el lenguaje JavaScript. Con este conocimiento, podemos formar lentamente un sistema completo de programación funcional en nuestros cerebros integrando estos elementos juntos y comprender su rendimiento en JavaScript.