소개
함수 합성 (function composition) 은 함수형 프로그래밍에서 두 개 이상의 함수를 결합하여 새로운 함수를 생성하는 데 사용되는 기술입니다. Python 에서는 functools 모듈의 compose 함수를 사용하여 함수 합성을 수행할 수 있습니다. 그러나 compose 함수는 오른쪽에서 왼쪽으로 함수 합성을 수행하므로 모든 사용 사례에 적합하지 않을 수 있습니다. 이 챌린지에서는 왼쪽에서 오른쪽으로 함수 합성을 수행하는 함수를 구현합니다.
함수 역 합성 (Reverse Compose Functions)
하나 이상의 함수를 인수로 받아 왼쪽에서 오른쪽으로 함수 합성을 수행하는 새로운 함수를 반환하는 함수 compose_right를 작성하십시오. 첫 번째 (가장 왼쪽) 함수는 하나 이상의 인수를 허용할 수 있으며, 나머지 함수는 단항 함수여야 합니다.
구현은 functools 모듈의 reduce 함수를 사용하여 왼쪽에서 오른쪽으로 함수 합성을 수행해야 합니다.
from functools import reduce
def compose_right(*fns):
## your code here
from functools import reduce
def compose_right(*fns):
return reduce(lambda f, g: lambda *args: g(f(*args)), fns)
add = lambda x, y: x + y
square = lambda x: x * x
add_and_square = compose_right(add, square)
add_and_square(1, 2) ## 9
요약
이 챌린지에서는 왼쪽에서 오른쪽으로 함수 합성을 수행하는 함수 compose_right를 구현했습니다. functools 모듈의 reduce 함수를 사용하여 왼쪽에서 오른쪽으로 함수 합성을 수행했습니다.