Aaron
Aaron adds some syntactic sugar to Python function composition.
How?
Say you have the following functions:
def add_one(n):
return n + 1
def double(n):
return n * 2
def ints_less_than(n):
return range(1,n)
def product(*ns):
result = 1
for n in ns:
result *= n
return result
You could do something like this:
def two_n_plus_one(n):
return add_one(double(n))
def product_of_lesser_numbers(n):
return product(*ints_less_than(n))
Or, you could use Aaron, decorate your functions with composable
, and do this:
two_n_plus_one = double > add_one
product_of_lesser_numbers = ints_less_than >> product
You've probably figured out by now that >
is composition, and >>
is will
splat the results into the next function.
Aaron? What?
Yeah, the composer. Get it?