functional python

def add(a, b):
return a + b

partial function application

def add1(num):
return add(1, num)

print(add1:, add1(1)) # add1: 2


from functools import partial
add2 = partial(add, 1)
print(add2:, add2(1)) # add2: 2

currying

def curried_add(a):
def inner(b):
return add(a, b)
return inner

print(curried_add(1)(2))

from toolz import curry
add2 = curry(add)
print(add2(1, 2))

map

map(f, iter)
[f(el) for el in seq]

filter

filter(p, seq)
[el for el in seq if p(el)]

reduce

from functools import reduce
for el in seq:
result = f(result, el)

function composition

[f(x) for x in seq if p(x)]
map(f, filter(p, seq))

from toolz.curried import compose, map, filter
compute = compose(map(f), filter(p))
compute(seq)