함수 합성
함수 합성
수학에서의 함수 합성
한 함수의 공역(반환 타입)이 다른 함수의 정의역(매개변수 타입)과 일치하는 경우 두 함수를 이어 하나의 함수로 만드는 연산
수학에서의 함수는 어떤 집합의 각 원소가 다른 집합의 유일한 원소에 대응시키는 이항 관계 A → B
입력값들의 집합을 정의역(매개변수 타입)이라 한다.
출력에 사용되는 값들의 집합을 공역(반환 타입)이라 한다.
타입: 할당할 수 있는 값들의 집합
수학에서의 집합은 특정한 조건(타입)에 맞는 별개의 원소들의 모임
정의한 타입에 값을 할당할수 있냐 없냐를 판단
즉, 타입은 값들의 집합을 대표하는 일종의 그릇
함수 합성이란
함수를 잇는다는 것은 어떤 함수의 출력을 다른 함수의 입력으로 넘겨주는 것을 의미
함수가 몇개가 이어지더라도 정의역과 공역이 일치한다면 계속해서 합성이 가능하다.
분리된 각각의 함수들이 버그가 없다면 합성된 함수 역시 버그가 없다는 것을 보장할 수 있다. (입출력이 명확하기 때문)
함수형 프로그래밍에서는 임의의 함수의 이름을 f
라 부르는 경우가 많고 더 많은 함수가 필요하면 알파벳 순서대로 f
, g
, h
라고 쓰는 관례가 있다.
변수의 이름은 x
, y
, z
및 a
, b,
c
등으로 부르는 것을 선호하는 경향이 있다.
장점
공통적으로 사용되어 중복되는 연산이나 기능을 함수로 정의하고 합성하면 재사용성을 높히고 중복을 줄일 수 있다.
역할이 분명한 작은 함수들을 조합하여 더 의미 있는 연산이나 기능을 수행하고 좀 더 고수준의 추상화를 달성할 수 있다. 이로 인해 코드의 의미를 더 명확하게 하고 복잡한 로직들도 단순화 시킬 수 있다.
기능이나 연산이 변경된 경우 전체 코드를 수정하지 않고 해당 부분만 수정하고 테스트 할 수 있어 유지보수성이 높아진다.
Last updated