밑에 두 함수는 같다

const add = x => y => x + y // currying
const add = function (x) {
  return function (y) {
    return x + y
  }
}

add(2)(6); // 8
function add(a) {
  return function(b) {
    return a + b;
  };
}

const addWith5 = add(5);
console.log(addWith5(3)); // 8
function add(a, b) {
  return a + b;
}

console.log(add(5, 3)); // 8

커링 함수는 중간에 **addWith5**와 같은 중간 함수를 생성할 수 있어서, 이후에 재사용성이 높아진다. 반면, 일반 함수는 모든 인자를 한 번에 처리하고 결과를 바로 반환한다.