두 함수 $f: X \to Y$, $g: Y \to Z$에 대해, $x$를 $f$로 보낸 결과를 다시 $g$로 보내는 함수를 합성함수라 하고 $g \circ f$로 쓴다:
$$(g \circ f)(x) = g(f(x))$$
$f$의 치역이 $g$의 정의역에 포함되어야 정의된다.
함수를 "기계"로 보면 합성은 기계를 직렬로 연결하는 것이다. 원료 $x$가 기계 $f$를 지나 중간재 $f(x)$가 되고, 그것이 기계 $g$를 지나 완제품 $g(f(x))$가 된다. 표기 $g \circ f$는 오른쪽부터 읽는다 — 먼저 적용하는 함수가 오른쪽이다.
합성함수에서 가장 자주 나오는 실수는 적용 순서를 반대로 읽는 것이다. $g \circ f$는 왼쪽의 $g$부터 하는 것 같지만, 실제로는 안쪽(오른쪽)의 $f$를 먼저 적용한다. $(g \circ f)(x) = g(f(x))$에서 괄호 안쪽부터 계산하는 것과 같은 순서다. 옷을 입을 때 속옷을 먼저 입고 겉옷을 나중에 걸치듯, 안에 있는 함수가 먼저 작동한다고 기억하면 헷갈리지 않는다.
두 번째로 놓치기 쉬운 건 순서를 바꾸면 결과가 달라진다는 점이다. 수의 곱셈은 $2 \times 3 = 3 \times 2$지만 함수 합성은 그렇지 않다. "양말을 신고 신발을 신기"와 "신발을 신고 양말을 신기"가 전혀 다른 결과이듯, $g \circ f$와 $f \circ g$는 대개 다르다. 위 예처럼 $f(x)=x+1$, $g(x)=x^2$이면 한쪽은 $(x+1)^2$, 다른 쪽은 $x^2+1$로 갈린다. 그래서 합성 문제에서는 "누구를 먼저 넣는가"를 항상 먼저 확정해야 한다.
한 가지 더, 아무 두 함수나 이어 붙일 수 있는 건 아니다. $f$가 내놓는 값을 $g$가 받아들일 수 있어야 하니, $f$의 치역이 $g$의 정의역 안에 들어와야 합성이 정의된다. 앞 기계의 출력이 뒷 기계의 규격에 맞아야 연결되는 것과 같다.
$f(x) = x + 1$, $g(x) = x^2$일 때:
$$(g \circ f)(x) = (x+1)^2, \qquad (f \circ g)(x) = x^2 + 1$$
$x = 1$에서 전자는 $4$, 후자는 $2$ — 연결 순서가 결과를 바꾼다.
복잡한 함수를 단순한 함수의 합성으로 분해하는 시각도 중요하다: $y = (2x+1)^3$은 "일차식 $u = 2x+1$ 뒤에 세제곱"으로 읽을 수 있고, 이 분해가 미분의 연쇄법칙(미분법)의 출발점이 된다.