def pipe(*functions):
def fn(*arguments):
for func in functions:
if isinstance(arguments, tuple):
arguments = func(*arguments)
else:
arguments = func(arguments)
return fn
a = pipe(lambda x: x ** 2, print)
a(10)
ZGVmIHBpcGUoKmZ1bmN0aW9ucyk6CiAgICBkZWYgZm4oKmFyZ3VtZW50cyk6CiAgICAgICAgZm9yIGZ1bmMgaW4gZnVuY3Rpb25zOgogICAgICAgICAgICBpZiBpc2luc3RhbmNlKGFyZ3VtZW50cywgdHVwbGUpOgogICAgICAgICAgICAgICAgYXJndW1lbnRzID0gZnVuYygqYXJndW1lbnRzKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgYXJndW1lbnRzID0gZnVuYyhhcmd1bWVudHMpCiAgICByZXR1cm4gZm4KCmEgPSBwaXBlKGxhbWJkYSB4OiB4ICoqIDIsIHByaW50KQphKDEwKQ==