python高阶函数

来源:互联网 发布:zynq linux smp 编辑:程序博客网 时间:2024/05/13 11:15
combinatorial.py
from operator import mul, add, truthapply_each = lambda fns, args=[]: map(apply, fns, [args]*len(fns))bools = lambda 1st: map(truth, 1st)bool_each = lambda fns, args=[]: bools(apply_each(fns, args))conjoin = lambda fns, args=[]: reduce(mul, bool_each(fns, args))all = lambda fns: lambda arg, fns=fns: conjoin(fns, (arg,))both = lambda f,g: all((f,g))all3 = lambda f,g,h: all((f,g,h))and_ = lambda f,g: lambda x, f=f, g=g: f(x) and g(x)disjoin = lambda fns, args=[]: reduce(add, bool_each(fns, args))some = lambda fns: lambda arg, fns=fns: disjoin(fns, (arg,))either = lambda f,g: some((f,g))anyof3 = lambda f,g,h: some((f,g,h))compose = lambda f,g: lambda x, f=f, g=g: f(g(x))compose3 = lambda f,g,h: lambda x, f=f, g=g, h=h: f(g(h(x)))ident = lambda x: x
原创粉丝点击