자바스크립트에서 Currying을 사용하여 함수의 인자를 어떻게 반전할 수 있나요?
아래는 자바스크립트에서 Currying을 사용하여 함수의 인자를 반전시키는 예시 코드입니다. 예를 들어, 인자를 받는 add
함수를 Currying을 사용하여 인자를 반전하는 reverseArgs
함수를 만들어보겠습니다.
const reverseArgs = fn => (...args) => fn(...args.reverse());
const add = (a, b) => a + b;
const curriedAdd = reverseArgs(add);
console.log(curriedAdd(2, 3)); // 5
console.log(curriedAdd(4, 5)); // 9
위 예시 코드에서 reverseArgs
함수는 인자를 받는 함수(fn
)를 인자로 받습니다. 이후, Rest 파라미터를 사용하여 fn
함수에 전달할 인자들을 받는 함수를 반환합니다. 이때, args.reverse()
를 통해 전달받은 인자들을 반전시킵니다. 마지막으로, 반전된 인자들을 fn
함수에 전달합니다.
add
함수는 두 개의 인자(a
와 b
)를 받아서 더해주는 함수입니다. reverseArgs
함수를 사용하여 add
함수를 curriedAdd
함수로 변환합니다. 그 결과, curriedAdd
함수는 인자를 반전시켜서 add
함수를 호출합니다.
위의 예시 코드를 실행하면, curriedAdd
함수를 사용하여 인자를 반전시켜서 add
함수를 호출할 수 있습니다.
Currying은 함수의 인자를 반전시키는 기법으로 유용하게 활용될 수 있습니다.