[java] 람다 표현식을 사용하여 재귀호출은 어떻게 할 수 있나요?

다음은 람다 표현식을 사용하여 팩토리얼을 계산하는 예제입니다.

import java.util.function.*;

public class Main {
    public static void main(String[] args) {
        IntUnaryOperator factorial = n -> n == 0 ? 1 : n * factorial.applyAsInt(n - 1);
        System.out.println(factorial.applyAsInt(5));  // 120
    }
}

이 예제에서는 IntUnaryOperator를 사용하여 factorial이라는 이름의 람다 표현식을 정의합니다. 이 람다 표현식은 n이 0이면 1을 반환하고, 그렇지 않으면 factorial.applyAsInt(n - 1)을 호출하여 재귀적으로 팩토리얼을 계산합니다.

이처럼 람다 표현식을 사용하여 재귀호출을 구현할 때는 보조함수와 함수형 인터페이스를 활용하여 재귀적인 동작을 구현할 수 있습니다.