커링(currying)은 무엇인가?

Jelkov Ahn·2021년 9월 13일
0

고차함수

목록 보기
3/3
post-thumbnail

커링은 무엇인가요??

커링을 간단히 이야기 하자면, 다른 함수를 반환하는 함수라고 정의 하면 됩니다.

커링은 각 단계에서 하나의 인자를 가지는 함수를 생성하면서, 함수의 인자를 하나씩 하나씩 적용하는 것이다.

예를 들어,

다음과 같은 함수가 있다면

function multiply(a, b){
  return a*b;
}

2의 배수 값을 만드는 함수를 만드려고 한다.

function multiplyTwo(a){
  return mutiply(a,2)
} // 인자를 2개를 같이 쓴다.

커링을 했을 경우에 아래와 같다.

function multiply(a, b){
  return a*b;
}

function multiplyX(x) {
 return function (a) {
   return multiply(a, x);
 }
}
이러면 인자를 하나만 쓸수 있다 !!

const multiplyTwo = multiplyX(2);
const multiplyThree = multiplyX(3);

이럴 때 커링을 이용해 특정 인자를 재사용할 수 있게 만들 수 있다.

ES6 및 최신 버전의 Javascript에서 화살표 함수 구문을 사용하여 Curryed 함수를 쉽게 작성할 수 있습니다.

let greeting = (a) => (b) => a + ' ' + b

greeting('Hello There')('General Kenobi')
//returns Hello There General Kenobi

출처 :
(1) https://www.digitalocean.com/community/tutorials/an-introduction-to-closures-and-currying-in-javascript

profile
끝까지 ... 가면 된다.

0개의 댓글