Skip to content

Instantly share code, notes, and snippets.

@rossdylan
Created August 7, 2012 16:37
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save rossdylan/3287138 to your computer and use it in GitHub Desktop.
Save rossdylan/3287138 to your computer and use it in GitHub Desktop.
Function composition in python
from functools import partial
def _composed(f, g, *args, **kwargs):
return f(g(*args, **kwargs))
def compose(*a):
try:
return partial(_composed, a[0], compose(*a[1:]))
except:
return a[0]
@jgomo3
Copy link

jgomo3 commented Feb 4, 2016

Relevant: https://mathieularose.com/function-composition-in-python/

A comment from Fred Loney, gives an elegant solution:

def compose(*funcs):
    return lambda x: reduce(lambda v, f: f(v), reversed(funcs), x)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment