from functools import reduce
id = lambda x : x
def dot(f,g):
return lambda x : f(g(x))
def compose(*fs):
return reduce(dot,fs,id)
f1 = lambda x : x + 1
f2 = lambda x : x + 2
f3 = lambda x : x + 10
compose(f1,f2,f3)(10)
from functools import reduce
id = lambda x : x
def dot(f,g):
return lambda x : f(g(x))
def compose(*fs):
return reduce(dot,fs,id)
f1 = lambda x : x + 1
f2 = lambda x : x + 2
f3 = lambda x : x + 10
compose(f1,f2,f3)(10)
파이썬은 함수 언어 아님??
엄밀히 말하면 OOP이지만. 함수언어로 충족하기위한 많은 조건들을 가지고있음. 예를들어 lambda calculus, Higher Order Function, lazy evaluation(through iterator). 또한 functools, itertools, toolz 같은 함수언어를 위한 페키지도 제공됨.