Java - Currying

JunMyung Lee·2024년 7월 30일
0

자바

목록 보기
8/8
post-custom-banner

Currying은 여러 개의 인자를 가진 함수를 호출 할 경우, 파라미터의 수보다 적은 수의 파라미터를 인자로 받으면서 누락된 파라미터를 인자로 받는 기법을 말한다. 즉 커링은 함수 하나가 n개의 인자를 받는 과정을 n개의 함수로 각각의 인자를 받도록 하는 것이다. 부분적으로 적용된 함수를 체인으로 계속 생성해 결과적으로 값을 처리하도록 하는 것이 그 본질이다.

함수형 프로그래밍에서 하나의 함수가 다수의 인자를 순차적으로 받아들이는 기법

Javascript currying

// 1단계: 커링된 함수 정의
let sum = x => y => x+y;
 // 2단계: 함수 사용
let sum5 = sum(5);
let sum12 = sum5(7);

console.log(sum12, sum(5)(7)); // 12 12

Java currying

import java.util.function.Function;

public class CurryingExample {
    public static void main(String[] args) {
        // 1단계: 커링된 함수 정의
        Function<Integer, Function<Integer, Integer>> curriedAdd = x -> y -> x + y;

        // 2단계: 함수 사용
        Function<Integer, Integer> add5 = curriedAdd.apply(5);
        int result = add5.apply(10); // 15

        System.out.println(result + " | " + curriedAdd.apply(5).apply(10));
    }
}

CurryingExample.main(null); // 15 | 15
profile
11년차 검색개발자 입니다. 여러 지식과 함께 실제 서비스를 운영 하면서 발생한 이슈에 대해서 정리하고 공유하고자 합니다.
post-custom-banner

0개의 댓글