[c#] 람다식을 사용하여 어떻게 불변성을 유지할 수 있나요?

람다식(Lambda Expression)

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

람다식은 익명 메서드를 나타냅니다. 이는 함수형 프로그래밍 스타일에 부합하며, 불변성을 유지하는 데 도움이 됩니다. 이를 통해 다음과 같이 불변성을 유지할 수 있습니다.

불변성 유지

  1. 읽기 전용 변수 사용

    int x = 10;
    Func<int, int> square = num => num * num;
    int result = square(x);
    

    이 예제에서 x는 읽기 전용으로 선언되었기 때문에 불변입니다. 이는 람다식 내에서 x의 값이 변경되지 않음을 보장합니다.

  2. 재할당 없는 불변 객체

    var numbers = new List<int> { 1, 2, 3, 4, 5 };
    var sum = numbers.Sum();
    

    리스트 numbers를 변경하지 않고 람다식 Sum()을 사용하여 합을 계산하는 경우, 해당 리스트는 불변합니다.

  3. 순수 함수 사용

    순수 함수는 동일한 입력에 대해 항상 동일한 결과를 반환하며, 외부 상태에 영향을 주지 않습니다.

람다식을 활용하여 불변성을 유지함으로써 코드의 예측 가능성과 안정성을 높일 수 있습니다.

참고 문헌: