很多语言都提供有lambda语法特性,包括C#,PHP,Python,Scala,Java 1.8也开始支持这特性,C++11也不甘示弱,可见lambda有多酷。lambda实际上就一匿名函数指针,它可以包括表达式和语句。各种语言lambda语法格式差异比较大,下面看看Python lambda书写形式。
#coding=gbk #测试 lambda表达式 def test_lambda(): f = lambda x,y,z:x+y+z #f类似于函数指针:<function <lambda> at 0x016B3730> print f(1,34,4) #x=1,y=34,z=4 val = reduce(lambda x,y:x*y,range(1,10)) #1*2*3*...*9,reduce函数表x*y值作为下一次运算的x print val b = lambda x:lambda y:x+y c = b(2) #lambda嵌套,此时返回的只是一个函数:<function <lambda> at 0x016B3770> print c(3) #调用函数,结果为5