더북(TheBook)

3.1.2 코틀린 역함수

함수에 역함수(inverse function)가 있을 수도 있고 없을 수도 있다. f(x)A에서 B로 가는 함수라면(A는 정의역, B는 공역), 역함수는 f-1(x)라고 쓰고 B가 정의역, A가 공역이 된다. f 함수의 타입을 A -> B라고 표현한다면, 역함수의 타입은 (역함수가 존재한다면) B -> A다.

Note≡

코틀린은 함수 타입을 표현할 때 (A) -> B(B) -> A처럼 약간 다른 표현을 사용한다. 지금부터는 코틀린의 함수 타입 표기법을 사용한다.

앞에서 설명한, 함수가 되기 위해 필요한 조건을 만족해야 함수의 역3이 역함수가 될 수 있다. 즉, 정의역의 각 값이 모두 하나의 값에 대응해야 한다. 그 결과 successor(x)의 역함수는 predecessor(x)라고 부를 수 있는(물론 이를 xyz라고 부를 수도 있다) 대응 관계이긴 하지만, N 안에서 함수는 아니다(양의 정수의 집합인 N에는 0이 포함되는데, 0의 이전 값(predecessor)N에 포함되지 않는다). 반대로 successor(x)가 부호가 있는 정수(음수와 양수를 포함, Z라고 표시)라면 successor의 역 대응 관계는 함수다.

역함수가 존재하지 않는 간단한 함수가 많다. 다음 예를 보자.

f(x) = (2 × x)

이 함수가 N에서 N으로 가는 함수로 정의되어 있다면 역함수가 존재하지 않는다. f-1(x) = x / 2이므로 x가 홀수인 경우 함수 값이 N에 속하지 않는다. 하지만 이 함수를 N에서 짝수 정수의 집합으로 가는 함수로 정의한다면 역함수가 존재한다.

 

 


3 역주 함수의 역(inverse)은 정의역 -> 공역으로 가는 함수의 대응 관계 방향을 모두 거꾸로 바꿔서 만든, 공역 -> 정의역으로 가는 대응 관계를 말한다. 모든 함수의 역이 함수는 아니다. 예를 들어 A = {a, b}, B = {1, 2}이고 f(a) = 1, f(b) = 1이라면 f는 함수지만, f의 역은 1을 a와 b 두 원소에 대응시키고 2에는 대응하는 값이 아예 없기 때문에 함수가 아니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.