ETC -

함수 합성(Function Composition)

  • -
반응형

1. 함수 합성(Function Composition)이란?

함수 합성은 함수들을 조합하여 새로운 함수를 만드는 것입니다.
함수 합성(Function Composition)을 사용해서 함수를 만들어 보겠습니다.

1) compose()의 특징은
함수 호출들을 오른쪽에서 왼쪽 방향으로 볼수 있습니다.

const compose = function(functions){
	if(!functions.length){
    	return function(x){
			return x;
        }
    }

	return function(x){
   		let val = x;
		for(let i = functions.length - 1; i >= 0; i--){
        	val = functions[i](val)
		}
        return val;
    }
}

const fn = compose([x => x + 1, x => 2 * x])
fn(4) //9

이것을 해석하면 compose 함수 호출에 배열들을 오른쪽에서 왼쪽으로 순회하고 있는 모습을 확인할 수 있습니다.
이것은 마치 자바스크립트 내장함수인 reduceRight()함수와 같은 것입니다.

2) pipe()의 특징은
함수 호출들을 왼쪽에서  오른쪽 방향으로 볼 수 있습니다.

const pipe = function(functions) {
    if (!functions.length) {
        return function(x) {
            return x;
        }
    }

    return function(x) {
        let val = x;
        for (let i = 0; i < functions.length; i++) {
            val = functions[i](val)
        }
        return val;
    }
}

const fn = pipe([x=>x + 1, x=>2 * x])
fn(4) //10

이것을 해석하면 pipe 함수 호출에 배열들을 왼쪽에서 오른쪽으로 순회하고 있는 모습을 확인할 수 있습니다.
이것은 마치 자바스크립트 내장함수인 reduce() 함수와 같은 것입니다.

reduce함수와, reduceRight함수가 내부적으로 어떻게 구현되었는지 역 볼 수 있었습니다.😃😃🙏🏻✅

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.