파이썬을 이용한 함수 합성

Beginner

This tutorial is from open-source community. Access the source code

소개 (Introduction)

함수 합성 (Function composition) 은 두 개 이상의 함수를 결합하여 새로운 함수를 생성하는 함수형 프로그래밍 기법입니다. Python 에서는 functools.reduce() 함수를 사용하여 오른쪽에서 왼쪽으로 함수 합성을 수행할 수 있습니다.

함수 합성 (Compose Functions)

compose(*fns)라는 함수를 작성하십시오. 이 함수는 하나 이상의 함수를 인수로 받아들이고, 입력 함수들을 오른쪽에서 왼쪽으로 합성한 결과인 새로운 함수를 반환합니다. 마지막 (가장 오른쪽에 있는) 함수는 하나 이상의 인수를 받아들일 수 있으며, 나머지 함수들은 단항 함수여야 합니다.

from functools import reduce

def compose(*fns):
  return reduce(lambda f, g: lambda *args: f(g(*args)), fns)
add5 = lambda x: x + 5
multiply = lambda x, y: x * y
multiply_and_add_5 = compose(add5, multiply)
multiply_and_add_5(5, 2) ## 15

요약 (Summary)

이 챌린지에서는 functools.reduce() 함수를 사용하여 Python 에서 오른쪽에서 왼쪽으로 함수 합성을 수행하는 방법을 배웠습니다. 또한 하나 이상의 함수를 인수로 받아들이고, 입력 함수들을 오른쪽에서 왼쪽으로 합성한 결과인 새로운 함수를 반환하는 compose() 함수를 작성했습니다.