[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
    }
}

위 예시에서 AddTwoMultiplyByThree 함수를 합성하여 composedFunction을 만들었습니다. AddTwo 함수의 결과가 MultiplyByThree 함수의 입력으로 전달되어 최종적으로 새로운 함수가 생성됩니다.

이와 같이 람다식과 델리게이트를 활용하여 함수 합성을 쉽게 수행할 수 있습니다.

더 자세한 내용은 Microsoft 공식 문서를 참고할 수 있습니다: 함수 합성 (Function composition)