부분적인 적용
함수의 호출이 실제로는 인자의 묶음을 함수에 적용하는 것임을 알 수 있다. 그러면 인자를 한 번에 다 적용하는 것이 아니라 부분부분 인자를 가져와서 함수에 적용하는 것은 어떨까? 이것은 수학 함수를 직접 계산할 때 흔히 쓰는 방법이라 한다.예를 들어보자
funtion add(x, y) { return x + y; } add(5, 4);여기서 부분적인 적용을 하는 개념은
function (5, y) { return 5 + y; } // 이렇게 x를 먼저 적용한 후에 function (5, 4) { return 5 + 4; } // 이렇게 나머지 인자가 부분적으로 가져와서 적용하는 것이다.그러니까 첫번째 인자를 적용한 상태에서 다른 인자를 넣어서 함수를 수행하는 것이다.
var add = function (x, y) { return x + y; } add.apply(null, [5, 4]); // 9 var add_part = add.partialApply(null, [5]); // 첫번째 인자만 먼저 적용 (부분적용) add_part.apply(null, [4]); // 9이것은 사실 add(5)(4)와 같다. add(5)가 (4)로 호출할 수 있는 함수를 반환하기 때문이다. 아! partialApply는 현재 없는 메서드이다. 하지만 이제 만들어 볼 것이다.
함수의 부분적인 적용을 처리하도록 하는 과정을 커링(Curring)이라고 한다.
댓글 없음:
댓글 쓰기