在面向对象编程和python没有出现之前,计算最主要的方面就是函数式编程。对计算机编程来说,一个函数就是一个演算,也可以被定义为来源于一系列对于符合特定参数的输入的有穷操作结果的集合。在python入门教程 中也提到,这些参数(parameters)是函数的参数(arguments).
如果要用伪代码的形式定义一个数学函数,用lambda形式是一个很好的方法。比如计算一个输入值x的平方,计算式是x*x。但是,对于lambda,我们用正式的函数定义:
λ x. x·x
这个可以很容易的转换成python:
def square(x):
return lambda x : x*x
在这种情况下,Python会自动决定参数的数值(numerical)特性。但是,你也可以同样的定义字符操作函数。例如,定义替换函数,我们可以写成:
λ x[y := x´]
这个函数让所有的属于x的元素x’,替换为y。在python中,我们这样写:
def substitute(x):
return x = x.replace(x,y)
在shell界面下的演示展现了replace字符串函数的灵活性。
>>> x = 'cat'
>>> y = 'dog'
>>> x = x.replace(x, y)
>>> x
'dog'
>>> x = x.replace('o', y)
>>> x
'ddogg'
使用lambda记法的本质是设计非常直接的直接的函数。恩,如果想学习更多的函数,参见":python入门:语法的集合
译者记:本文的第二个例子,除了验证了,python本身的的字符串函数比较灵活外,并没有显示lambda函数的优势。举得是非常之不恰当.
如果有不同的思想,欢迎email: wolfpythonlondon@gmail.com 。 共同探讨。
resources:http://python.about.com/od/gettingstarted/qt/beg_lamda.htm