[c#] 람다식을 사용하여 어떻게 높은 차수 함수를 구현할 수 있나요?
C#에서는 람다식을 사용하여 높은 차수 함수를 간단하게 구현할 수 있습니다. 람다식은 익명 함수를 표현하는 방법으로, 간결한 문법을 통해 함수를 정의하고 전달할 수 있습니다.
우선, 람다식을 사용하여 n차 함수를 구현하기 위해 Func
대리자를 활용할 수 있습니다. Func
대리자는 입력 매개변수를 받아들이고 결과를 반환하는 대리자로, 람다식을 활용하여 함수를 정의할 때 유용하게 활용됩니다.
다음은 n차 함수를 구현하는 예제 코드입니다:
using System;
class Program
{
static void Main()
{
// n차 함수를 구현하는 람다식
Func<double, double> highOrderFunction = x => Math.Pow(x, n); // n은 함수의 차수
// n차 함수 테스트
int n = 3; // 예를 들어 3차 함수를 구현
for (double x = 0; x <= 1; x += 0.1)
{
Console.WriteLine($"f({x}) = {highOrderFunction(x)}");
}
}
}
위의 코드에서 Func<double, double>
는 입력으로 double
을 받아들이고 double
을 반환하는 함수를 나타냅니다. Func
대리자는 n
에 해당하는 차수의 함수를 정의할 때 활용됩니다.
람다식 x => Math.Pow(x, n)
은 입력으로 x
를 받아들이고 Math.Pow(x, n)
을 반환하는 함수를 나타냅니다. 여기서 n
은 함수의 차수를 나타내며, 상황에 맞게 설정해주어야 합니다.
위 예제를 실행하면, n
차 함수의 결과가 예시와 같이 출력됩니다.
참고 문헌:
- Microsoft Docs. “Func<T, TResult> Delegate.” Microsoft, https://docs.microsoft.com/en-us/dotnet/api/system.func-2?view=net-6.