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)