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

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

作為函數語言,Ruby中一直都有closure的用法,http://samdanielson.com/2007/3/19/proc-new-vs-lambda-in-ruby有個簡單例子。

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"
參見 http://www.infoq.com/cn/news/2008/01/new-lambda-syntax

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