python
from funcy import *
data = [1, 2, 3, 4, 5]
result = map(lambda x: x * 2, data)
print(result) # [2, 4, 6, 8, 10]
total = reduce(lambda x, y: x + y, data)
print(total) # 15
def filter_odd(x):
return x % 2 != 0
def square(x):
return x * x
def sum_square(x, y):
return x + y
pipeline = pipe(
filter(filter_odd),
map(square),
reduce(sum_square)
)
result = pipeline(data)
print(result) # 35
@memoize
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
fibonacci(5)