JavaScript 중급: 커링(Curry Function)

이토니·2024년 1월 13일
0

JavaScript

목록 보기
18/33
post-thumbnail

커링이란?

단일 호출로 처리하는 함수를 각각의 인수가 호출 가능한 프로세스로 호출된 후 병합될 수 있게 변환하는 것이다.

f(a,b,c) ➡️ 커링 ➡️ f(a)(b)(c)

const sum = (x, y) => x + y;

const curriedSum = x => y => x + y;

console.log(sum(10, 20));
console.log(curriedSum(10));
console.log(curriedSum(10)(20));

const tenPlus = curriedSum(10);
console.log(tenPlus);
console.log(tenPlus(100));

커링을 다이나믹하게 처리하기

  • 파라미터의 개수에 상관없이 한꺼번에 처리할 수도 있다.
function curry(func) {

    return function curried(...args) {
        if (args.length >= func.length) {
            return func.apply(this, args);
        } else {
            return function (...args2) {
                return curried.apply(this, args.concat(args2));
            }
        }
    };

}
profile
cool & soft codes

0개의 댓글