Javascript: 기능 구성
const add = (x, y) => x+y;
const subtract = (x) => x-4;
const multiply = (x) => x * 8;
// result of `add` is passed to `subtract` and its result passed to `multiply`.
const result = multiply(subtract(add(2, 3)));
result;
> 8
읽기 쉬워 보이지만 차례로 호출할 함수가 더 있으면 어떻게 될까요?
좀 더 깔끔한 접근 방식을 시도해 봅시다.
const compose = (...functions) => x => functions.reduceRight((total, f) => f(total), x);
const add = x => x+2;
const subtract = x => x-1;
const multiply = x => x * 8;
compose(multiply, subtract, add)(2);
> 24
또한 reduce를 사용하여 다음을 구현할 수 있습니다.
const pipe = (...functions) => x => functions.reduce((total, f) => f(total), x);
const add = x => x+2;
const subtract = x => x-1;
const multiply = x => x * 8;
pipe(add, subtract, multiply)(2);
> 24
pipe
- 왼쪽에서 오른쪽으로 수행합니다.compose
- 오른쪽에서 왼쪽으로 수행합니다.
Reference
이 문제에 관하여(Javascript: 기능 구성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/urstrulyvishwak/js-functional-composition-15dc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)