【发布时间】:2009-12-11 07:15:46
【问题描述】:
当我开始写这个问题时,我并没有想到嵌套列表的简单解决方案,但现在无论如何都想找到一个。
这是一个丑陋的代码:
fun0(
fun1(fun2(fun3(arg1))),
fun1(fun2(fun3(arg4))),
fun1(fun2(fun3(arg4))),
fun1(fun2(fun3(arg4))))
哎哟!给出了示例的名称。在实际应用中,它们的名称没有这样的模式。
我在map(map ...) 和reduce(map ...) 得到错误的结果或TypeErrors 玩了一下,然后才到这里写这篇文章。当然,简单的解决方案是在编写问题时出现的:使用列表推导。像这样的东西(尚未测试):
fun0([i(j) for i in (fun1, fun2, fun3) for j in (arg1, arg2, arg3, arg4)])
不过,我还是想知道如何仅使用函数式编程工具实现相同的功能?
fun0(map(fun1, map(fun2, map(fun3,
(arg1, arg2, arg3, arg4)))))
我认为仍有一种模式可以删除。我尝试了map(map, (fun1, ...), (arg1, ...)),但这样 Python 尝试遍历每个参数并引发错误。
【问题讨论】:
标签: python functional-programming map