Good job proving me right.
from toolz import curried, pipe
pipe(ages,
curried.filter(lambda age: age > 17),
list,
len)
This way you can follow - vertically - what happens, where, and why. import functools
pipe = lambda *args: functools.reduce(lambda acc, el: el(acc), args)