[c#] 람다식을 사용하여 어떻게 함수 합성을 할 수 있나요?
함수 합성은 두 개 이상의 함수를 연결하여 새로운 함수를 만드는 것을 의미합니다.
람다식을 사용하여 함수를 합성하려면 Func
또는 Action
의 델리게이트를 활용할 수 있습니다. 델리게이트는 함수에 대한 참조를 나타내는 형식으로, 두 개 이상의 함수를 연결하여 새로운 함수를 만들 수 있습니다.
아래는 함수 합성을 수행하는 간단한 예시입니다.
using System;
class Program
{
// 함수 f: int를 입력받아 int를 반환하는 함수
static int AddTwo(int x) => x + 2;
// 함수 g: int를 입력받아 int를 반환하는 함수
static int MultiplyByThree(int x) => x * 3;
static void Main()
{
// 함수 합성: f(g(x))
Func<int, int> composedFunction = x => AddTwo(MultiplyByThree(x));
// 결과 출력
Console.WriteLine(composedFunction(5)); // 출력 결과는 17
}
}
위 예시에서 AddTwo
와 MultiplyByThree
함수를 합성하여 composedFunction
을 만들었습니다. AddTwo
함수의 결과가 MultiplyByThree
함수의 입력으로 전달되어 최종적으로 새로운 함수가 생성됩니다.
이와 같이 람다식과 델리게이트를 활용하여 함수 합성을 쉽게 수행할 수 있습니다.
더 자세한 내용은 Microsoft 공식 문서를 참고할 수 있습니다: 함수 합성 (Function composition)