Entradas

Mostrando las entradas etiquetadas como closures

Funciones lambda o anonimas

Ahora que ya comprendemos el concepto de closures, podremos apreciar con mayor amplitud el verdadero poder de las funciones lambda o anonimas. Pero primero lo primero, porque se llaman lambda?. Las funciones anonimas en programación deben el nombre de lambda, a la teoría matemática del Calculo Lambda inventada por Alonzo Church y Stephen Kleen (que no es el creador de la botella, ese es Klein ) Teoría que sin duda esta fuera del alcance del entendimiento del humano medio, asi que si la comprendes, bien por ti. Bien, ahora para que son utiles las funciones lambda?, de que sirve no ponerle nombre a una función?. Las utilidaded de las funciones lambda son casi infinitas pero intentaré mostrarles aquí las que yo considero son las más importantes. Las posibilidad de usar funciones anonimas va de la mano con otros conceptos importantes de Javascript, como : Todo es un objeto: (incluidas las funciones), esto me permite asignar funciones a variables, y hacer referencia a ellas utilizando la...

Closures

Las closures son una parte vital del paradigma de Programación Funcional asi que vamos a darle una pequeña mirada a este concepto para aclarar las cosas un poco. Una closure es cuando definimos una funcion esta tiene acceso a las variables del entorno donde fue definida. Aun si la ejecución de ese entorno finalizó. Veamos un ejemplo porque estoy seguro que nadie entendio nada ja. function outer(c, d) { var e = c * d; function inner(a, b) { return (e * a) + b; } return inner(2, 1); } como pueden ver en este simple ejemplo definimos una función dentro de otra sin embargo podemos ver que la funcion inner tiene acceso a la variable e que fue definida fuera de la funcion. entonces si llamamos la funcion outer(3,2) // returns 13 ahora veamos a que me refiero con que no importa si la funcion outter ya finalizó su ejecución. function crearFuncion(c){ var a=3; var b=4; var func = function(x){ return a*b*c*x; } return f...