Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Syntactic sugar for function composition
Branch: develop
Failed to load latest commit information.
aaron add docs
docs add docs
tests add docs
.gitignore add docs
.travis.yml remove duplicate testing command add splat note fix and use it for testing


Build Status

Aaron adds some syntactic sugar to Python function composition.


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?

Something went wrong with that request. Please try again.