Skip to content

Commit 8c7de24

Browse files
author
czheo
committed
recursive compose -> iteration
1 parent bff9230 commit 8c7de24

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

syntax_sugar/composable.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ def __rmul__(self, func):
1515
return lambda *args, **kwargs: func(self(*args, **kwargs))
1616

1717
def compose(*args):
18-
if len(args) == 1:
19-
return args[0]
20-
if len(args) == 2:
21-
return lambda *ag, **kwag: args[0](args[1](*ag, **kwag))
22-
else:
23-
return compose(compose(args[:-1]), args[-1])
18+
return reduce(lambda acc, fn:
19+
(lambda *ag, **kwag: acc(fn(*ag, **kwag))),
20+
args)

0 commit comments

Comments
 (0)