我有以下代码:
import operator
def stagger(l, w):
if len(l)>=w:
return [tuple(l[0:w])]+stagger(l[1:], w)
return []
def pleat(f, l, w=2):
return map(lambda p: f(*p), stagger(l, w))
if __name__=="__main__":
print pleat(operator.add, range(10))
print pleat(lambda x, y, z: x*y/z, range(3, 13), 3)
print pleat(lambda x: "~%s~"%(x), range(10), 1)
print pleat(lambda a, b, x, y: a+b==x+y, [3, 2, 4, 1, 5, 0, 9, 9, 0], 4)
重要部分:Pleat接受任何函数和任何序列,并将序列中的前几个元素作为参数传递到接收函数中。在
在哈斯凯尔有办法做到这一点还是我在做梦?在
以下类型签名是可选的:
其思想是,该函数显式地将未知长度的列表作为参数,因此它不是很安全的类型。但它几乎是Python代码的一对一映射。在
相关问题 更多 >
编程相关推荐