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

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

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