Skip to content

Instantly share code, notes, and snippets.

@maxcountryman
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxcountryman/9096434 to your computer and use it in GitHub Desktop.
Save maxcountryman/9096434 to your computer and use it in GitHub Desktop.
def trampoline(func):
def decorated(*args):
f = func(*args)
while callable(f):
f = f()
return f
return decorated
@trampoline
def fact(n, acc=1):
if n == 1:
return acc
return lambda: fact(n - 1, n * acc)
# fact(1e4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment