【发布时间】:2011-10-20 01:33:48
【问题描述】:
class foo(object):
def __init__(self,f):
self.f = f
def __call__(self,args_list):
def wrapped_f(args_list):
return [self.f(*args) for args in args_list]
return wrapped_f(args_list)
if __name__=='__main__':
class abc(object):
@foo
def f(a,b,c):
return a+b+c
a = range(5)
b = range(5)
c = range(5)
data = list(zip(a,b,c))
print(abc.f(data))
这是我几年前写的。当您用@foo 装饰任何功能f(X) 时,它变为
f(list of Xs)。
这个过程叫什么?它是什么?它的函数式编程名称是什么?
它不是咖喱。我知道简单的map9(f,list of Xs) 可以做到。
什么是装饰器/装饰操作在数学上称为?
【问题讨论】:
-
不是 100% 确定,但也许反向柯里化是您搜索的内容?见这里:stackoverflow.com/questions/5882527/reverse-curryingjacksondunstan.com/articles/371
-
也许可以,但在这种情况下,函数仍然采用单个参数。
标签: python functional-programming decorator lifting