24 lines
475 B
Python
24 lines
475 B
Python
# Contents of `pip install compositions'
|
|
|
|
class Compose(object):
|
|
def __init__(self, func):
|
|
self.func = func
|
|
|
|
def __call__(self, x):
|
|
return self.func(x)
|
|
|
|
def __mul__(self, neighbour):
|
|
return Compose(lambda x: self.func(neighbour.func(x)))
|
|
|
|
# from composition.composition import Compose
|
|
if __name__ == "__main__":
|
|
# Syntax 1
|
|
@Compose
|
|
def f(x):
|
|
return x
|
|
|
|
# Syntax 2
|
|
g = Compose(lambda x: x)
|
|
|
|
print((f * g)(2))
|