Closure: http://en.wikipedia.org/wiki/Closure_%28computer_science%29
我還比較喜歡Microsoft的一段說(shuō)明,位于鏈接http://msdn.microsoft.com/msdnmag/issues/07/09/BasicInstincts/Default.aspx?loc=zh中,查找“Lambda 表達(dá)式和變量提升

最早接觸Closure是在學(xué)javascript, 前年還寫(xiě)了篇關(guān)于Closure對(duì)javascript內(nèi)存泄露的文章http://m.tkk7.com/tim-wu/archive/2006/05/29/48729.html
一直以為這就是函數(shù)式語(yǔ)言的特性,頂多就是.net的委托和它有幾分相識(shí),
沒(méi)想到現(xiàn)在Java7也要支持了,有興趣的朋友可以去讀讀:
http://www.javac.info/
沒(méi)細(xì)讀,不知道Lambda在Java這種強(qiáng)類型檢查的語(yǔ)言中表現(xiàn)的如何。

作為函數(shù)語(yǔ)言,Ruby中一直都有closure的用法,http://samdanielson.com/2007/3/19/proc-new-vs-lambda-in-ruby有個(gè)簡(jiǎn)單例子。

def foo
  f 
= Proc.new { return "return from foo from inside proc" }
  f.call # control leaves foo here
  return 
"return from foo" 
end

def bar
  f 
= lambda { return "return from lambda" }
  f.call # control does 
not leave bar here
  return 
"return from bar" 
end

puts foo # prints 
"return from foo from inside proc" 
puts bar # prints 
"return from bar"

 最近,ruby 1.9又提供了新的定義lambda

= ->{puts "Hello Lambda"
參見(jiàn) http://www.infoq.com/cn/news/2008/01/new-lambda-syntax

VB 2008也支持了,這個(gè)鏈接有個(gè)例子,又是Lambda,又是范型,,又是委托回調(diào),很有意思:
http://msdn.microsoft.com/msdnmag/issues/07/09/BasicInstincts/Default.aspx?loc=zh
VB中“需要注意的一點(diǎn)限制是,lambda 表達(dá)式完全就是一個(gè)單個(gè)表達(dá)式。在 Visual Basic 2008 中,您在 lambda 表達(dá)式中只能有一個(gè)單個(gè)表達(dá)式。在本專欄中,我將進(jìn)一步向您展示 Visual Basic 2008 中引入的一個(gè)新的三元運(yùn)算符,它將允許您構(gòu)造條件表達(dá)式,但目前的功能不支持在 lambda 表達(dá)式中使用任意語(yǔ)句。”