He visto una lambda definida como una función anónima y como una referencia a una función. Javascript admite ambos:
setTimeout(function(){ /* an anonymous function */ }, 100)
var f = function(){ /* function ref */ }
Aquí es donde JS obtiene mucha de su potencia y flexibilidad. Java soporta la primera hasta cierto punto (implementaciones de interfaces anónimos),
pero no el último
- véase más adelante para la actualización para Java 8.
Su claro para mí, que (o ambos) de estos es la definición apropiada de un lambda .
JS definitivamente no es el primer idioma para admitir estas características. Volviendo de la memoria, creo que es pequeño el lenguaje que los entusiastas del lenguaje siempre hablan sobre apoyar a las lambdas.
BTW: en Java, una clase anónima se usa generalmente para pasar una definición de clase sobre la marcha para un argumento (se usa mucho en el swing). Algo como esto (de memoria, no compilados):
someGuiContainer(new WidgetInterface()
{
public void importantMethodToDefine(){
// Handle having the method called in my special widget way
}
}
)
actualización
Java, a partir del 8, es ahora oficialmente un lenguaje Lambda.
Ahora puede utilizar la siguiente sintaxis:
MathOperation addition = (int a, int b) -> a + b;
System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
Code Source
Lambda significa expresión anónima. Así que lenguaje lambda -> lenguaje con expresiones anónimas – bevacqua
Google Books link, FYI: http://books.google.co.uk/books?id=PXa2bby0oQ0C&pg=PA3&lpg=PA3&dq=lambda+language+crockford&source=bl&ots=HHtnnar4jI&sig=EmkjJCBHLOn5shPtgKzaZ_tQ4xg&hl= en & ei = okirTMyYGoqQjAfxuL3qBw & sa = X & oi = book_result & ct = result & resnum = 2 & ved = 0CBkQ6AEwAQ # v = onepage & q = lambda% 20language & f = false –
Ver [lambda calculus] (http://en.wikipedia.org/wiki/Lambda_calculus) en wikipedia. – Oded