[c#] 람다식을 사용하여 어떻게 함수형 프로그래밍을 구현할 수 있나요?

C#은 람다식을 사용하여 함수형 프로그래밍 개념을 구현할 수 있습니다. 함수형 프로그래밍은 함수를 일급 객체로 취급하고, 불변성을 유지하며, 순수 함수를 중심으로 프로그래밍하는 패러다임을 의미합니다. 람다식을 통해 C#에서 이러한 개념을 적용할 수 있습니다.

람다식 기본

C#에서 람다식을 사용하면 익명 함수(anonymous function)를 정의할 수 있습니다. 람다식은 => 기호를 사용하여 정의하며, 매개변수와 표현식으로 구성됩니다. 아래는 간단한 예제입니다.

Func<int, int, int> add = (a, b) => a + b;
Console.WriteLine(add(3, 5)); // 출력 값: 8

위 예제에서 add는 두 개의 int형 매개변수를 받아들이고, 그 합을 반환하는 람다식으로 정의되었습니다.

불변성 유지

람다식과 함께 C#은 불변성을 유지하도록 하는 기능들을 제공합니다. 예를 들어 readonly 키워드를 사용하여 읽기 전용 필드를 정의하거나, LINQ를 활용하여 데이터를 변경하지 않고 쿼리를 수행할 수 있습니다.

고차 함수

람다식을 사용하면 C#에서 고차 함수(higher-order function) 개념을 구현할 수 있습니다. 고차 함수는 다른 함수를 매개변수로 받거나, 함수를 반환하는 함수를 의미합니다. 아래는 고차 함수를 사용한 예제입니다.

Func<int, Func<int, int>> makeAdder = x => y => x + y;
Func<int, int> add3 = makeAdder(3);
Console.WriteLine(add3(5)); // 출력 값: 8

위 예제에서 makeAdderint형 매개변수를 받아들이고, int형을 반환하는 함수를 반환합니다.

정리

C#에서 람다식을 사용하여 함수형 프로그래밍을 구현하는 방법을 알아보았습니다. 람다식을 활용하면 함수형 프로그래밍의 핵심 개념들을 쉽게 적용할 수 있으며, 이를 통해 코드의 가독성을 높이고 유지보수성을 향상시킬 수 있습니다.

더 많은 사례와 개념을 공부하고자 한다면 다음 리소스를 참고하실 수 있습니다.