기본 콘텐츠로 건너뛰기

라벨이 합성함수인 게시물 표시

함수 합성 (function composition)

  요즘에 프로그래밍 공부를 하다보면, 다시 수학 공부를 하는 기분이 드는 중이다. 이래서 프로그래머 되려면 수학이 중요하다고 한건가? 이 생각이 드는 수준이다.  운을 띄운김에 함수 합성에 대해서 잠깐 설명 하자면, 아래와 같은 것이다. <<https://en.wikipedia.org/wiki/File:Example_for_a_composition_of_two_functions.svg>>  위의 그림은 고등학교 1학년 수학시간에 합성 함수를 공부를 하면서 본 적이 있을 것이다. 간단하게 위의 내용을 수학적 기호로 표현 하면, h(x) = (g ∘ f )(x) = g(f(x)) 이와 같이 표현이 된다. h는 f와 g의 합성함수라고 부른다.  일단 간단하게 위의 함수를 코드로 작성을 해보자. 아주 간단하게 작성 하였다. function f (x) { if (x === 1 ) return 1 if (x === 2 ) return 3 if (x === 3 ) return 1 if (x === 4 ) return 2 } function g (x) { if (x === 1 ) return 2 if (x === 2 ) return 3 if (x === 3 ) return 1 if (x === 4 ) return 2 } function h (x) { if (x === 1 ) return 2 if (x === 2 ) return 1 if (x === 3 ) return 2 if (x === 4 ) return 3 } g ( f ( 1 )) === h ( 1 )  일단 이게 함수합성이다. 그러니 별거 아니다.  함수 합성  뭐 물론 위의 방법도 훌룡한 함수 합성이다. 수학적으로는 말이다. 코드에서는 저런 스타일은 꽤 좋지 않을 것이다.  생각을 넓혀 보면 콜백지옥도 함수 합성이라고 볼 수 있다. 또한 Promise 체인을 하고 있다면,...