def add(x, y): return x + y
lambda x, y :x + y
def usuallyAdd2(x, y=2): return x + y #有默认参数
lambda x, y=2: x + y
def showAllAsTuple (*z): return z
lambda *z: z
lambda表达式运作起来就如一个函数,当被调用时,创造一个框架对象。将它赋值给一个对象后,该对象就是相应的函数。
def reduce(bin_func, seq, init=None):
Iseq = list(seq) # convert to list
if init is None: # initializer?
res = lseq.pop(0) # no
else:
res = init # yes
for item in lseq: # reduce sequence
res = bin_func(res, item) # apply function
return res # return result
偏函数应用
偏函数应用(partial function application, PFA),这种函数将任意数量(顺序)的参数的函数转化成另一个带剩余参数的函数对象。
这个概念和currying的概念有相关,currying也就是科里化,是指把原本接受多个参数的函数变换为接受一个单一参数的函数,并且返回接受余下参数且返回结果的新函数的技术。
这讲起来有些抽象,可以认为这个不提供参数就会使用默认参数的情形相似。在PFA的例子中,参数不需要调用函数的默认值,只需明确调用集合。
如下例子: