[Python-ideas] Infix application of binary functions
Carl M. Johnson
cmjohnson.mailinglist at gmail.com
Thu Jul 22 05:49:16 CEST 2010
Thought about it some more. Here’s a more general formula:
class InfixArity(object):
def __init__(self, arity):
self.arity = arity
self.args = []
def __call__(self, func):
self.func = func
return self
def __add__(self, arg):
self.args.append(arg)
if len(self.args) < self.arity:
return self
else:
return self.func(*self.args)
__radd__ = __add__
Infix = lambda func: InfixArity(2)(func)
And of course, one can use __mul__ or __div__ or whatever to taste. "1
// add // 2” doesn’t make me instantly vomit in my mouth. ;-)
-- Carl Johnson
More information about the Python-ideas
mailing list