我見過一個lambda被定義爲一個匿名函數和一個函數的引用。 Javascript同時支持:
setTimeout(function(){ /* an anonymous function */ }, 100)
var f = function(){ /* function ref */ }
這就是JS獲得其大量權力和靈活性的地方。 Java支持第一至一定程度(匿名接口的實現),
而不是後者
- 見下面的更新的Java 8.
及其我不清楚哪個(或兩者)的這些是λ的適當定義。
JS絕對不是支持這些功能的第一語言。從記憶的角度來看,我認爲語言愛好者總是熱衷於支持lambdas。在Java中,一個匿名類通常用於傳遞一個類定義,用於一個參數(在swing中使用很多)。像這樣的事情(從內存中,沒有編譯):
someGuiContainer(new WidgetInterface()
{
public void importantMethodToDefine(){
// Handle having the method called in my special widget way
}
}
)
更新
的Java,截至8,現已正式拉姆達語言。
您現在可以使用下面的語法:
MathOperation addition = (int a, int b) -> a + b;
System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
Code Source
Lambda表示匿名錶達式。所以lambda語言 - >使用匿名錶達式的語言 – bevacqua 2010-10-05 15:49:03
Google圖書鏈接,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 – 2010-10-05 15:49:07
請參閱wikipedia上的[lambda微積分](http://en.wikipedia.org/wiki/Lambda_calculus)。 – Oded 2010-10-05 15:50:10