当涉及函数式语言时,我想起了一种在对象列表上调用方法的方法,其中下一个方法调用使用前一个调用的结果作为输入以及下一个列表项。
在Python中,以下代码使用for循环执行相同的操作(在此实例中,它基于整数列表构建二叉树)。假设binary_insert将树和整数作为参数。
t = None
for x in [4, 2, 1, 5, 6, 3, 7, 9, 8, 12, 10, 11, 13, 15, 14]:
t = binary_insert(t, x)
print t
基本上我正在努力记住那种功能应用程序的名称。如果有一个Python等价物,那就太棒了。
答案 0 :(得分:6)
我认为您正在寻找reduce()
:
reduce(function,sequence [,initial]) - >值
将两个参数的函数累加应用于序列的项目, 从左到右,以便将序列减少到单个值。 例如,reduce(lambda x,y:x + y,[1,2,3,4,5])计算 ((((1 + 2)3)4)5)。如果存在initial,则将其放在项目之前 计算中的序列,并作为默认值 序列是空的。