python-plumb: cf9d1455053520f9a397822a73c221ae66ae9ccd
1: from core import curry
2:
3: def build():
4: def call(env):
5: return lambda func, arg: curry(func)(interpret(env, arg))
6:
7: def interpret(env, x):
8: funcs = {int: lambda a, b: env[x],
9: list: plumb,
10: tuple: chain}
11: if type(x) in funcs:
12: return funcs[type(x)](env, x)
13: return x
14:
15: def chain(env, calls):
16: return reduce(call(env), calls, lambda x: x)
17:
18: def plumb_(env, expr, arg):
19: if len(expr) is 0:
20: return arg
21: return chain([arg] + env, expr)
22:
23: plumb = curry(plumb_)
24:
25: return curry(lambda expr: plumb([], expr))
26:
27: plumb = build()
28: del(build)
Generated by git2html.