118일차 - 커링

김민찬·2021년 9월 4일
0

취업으로의 여정

목록 보기
119/196

커링이란?


커링은 인자를 f(a, b, c)처럼 여러개 받는 함수를 분리하여, f(a)(b)(C)와 같이인자를 하나씩만 받는 함수의 체인으로 만드는 방법이다.
함수형 프로그래밍 기법 중 하나로 함수를 재사용하는데, 유용하게 쓰일 수 있다.
자바스크립트 내부에는 커링이 내장되어 있지 않지만 자바스크립트로도 구현할 수 있다.

예시


예를 들어 아래와 같은 함수에서

const multiply = (num1, num2) => num1 * num2;

multiply(1, 2); // 2
multiply(3, 4); // 12

아래와 같은 커링 함수로 변화시킬 수 있다.

const multiply_curry = (num1) => (num2) => num1 * num2;

const multiply_curry2 = multiply_curry(2);

multiply_curry2(5); // 10
multiply_curry2(10); // 20

const multiply_curry3 = multiply_curry(3);

multiply_curry3(5); // 15
multiply_curry3(30); // 90

주의점


커링 함수에서 인자의 순서는 매우 중요하다. 앞에 있는 인자일 수록 변동 가능성이 적은 함수를 넣어야한다. 반대로 뒤에있는 인자일 수록 변동 가능성이 높은 함수를 넣어야한다.
그래서 인자의 순서의를 고려해서 코드를 설계해야 한다.

참고자료 :
모던 JS - 커링
Velog - 커링
Currying커링

profile
두려움 없이

0개의 댓글