0

在涉足函数式语言时,我想起了一种在对象列表上调用方法的方法,其中下一个方法调用使用上一个调用的结果作为输入以及下一个列表项。

在 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 等价物,那就太好了。

4

1 回答 1

6

我想你正在寻找reduce()

减少(函数,序列[,初始])-> 值

将两个参数的函数从左到右累积应用于序列的项目,以将序列简化为单个值。例如,reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) 计算 ((((1+2)+3)+4)+5)。如果 initial 存在,则在计算中将其放置在序列的项目之前,并在序列为空时用作默认值。

于 2013-07-16T12:21:30.577 回答