자바스크립트에서 Currying을 사용하여 함수 호출에 어떤 제약 조건을 두고 싶을 때 어떻게 할 수 있나요?

예를 들어, 특정 조건을 만족하는 경우에만 함수를 실행하고 싶을 때 Currying을 사용할 수 있습니다. 아래는 Currying을 사용하여 함수 호출에 제약 조건을 두는 예제입니다.

function multiply(multiplier) {
  return function(number) {
    if (number > 0) {
      return multiplier * number;
    } else {
      return "Number must be greater than 0.";
    }
  };
}

const triple = multiply(3);
console.log(triple(2)); // Output: 6
console.log(triple(-1)); // Output: Number must be greater than 0.

위 예제에서 multiply 함수는 첫 번째 인자로 곱하는 값을 받습니다. 이 함수를 호출하여 새로운 함수 triple을 생성했습니다. triple 함수는 두 번째 인자로 받은 숫자에 첫 번째 인자를 곱합니다. 그러나 숫자가 0보다 작은 경우에는 “Number must be greater than 0.” 메시지를 반환합니다.

따라서 위 예제에서는 triple 함수를 호출할 때 반드시 양수를 인자로 전달해야 합니다. 이러한 제약 조건을 Currying을 사용하여 함수 호출에 적용할 수 있습니다.

코드 작성에 참고할만한 읽을거리 및 자료입니다.
Link: Currying in JavaScript

#Currying #Javascript