더북(TheBook)

3.3.10 항등 함수 정의하기

지금까지 함수를 데이터처럼 취급할 수 있음을 살펴봤다. 함수를 다른 함수의 인자로 넘기거나, 함수가 함수를 반환하거나, 정수나 문자열에 대해 연산을 적용하는 것처럼 함수에도 연산을 적용할 수 있다. 이제부터 풀 예제에서는 연산을 함수에 적용하므로 연산에 사용할 중립적인 원소(함수)가 필요하다. 중립 원소(neutral element)는 덧셈의 0이나 곱셈의 1, 문자열 연결 연산의 빈 문자열과 같은 역할을 하는 원소를 뜻한다.

중립 원소는 주어진 연산에 대해서만 정의된다. 정수 덧셈에서 1은 중립 원소가 아니며, 곱셈에서 0은 더더욱 중립 원소가 아니다. 여기서는 함수 합성의 중립 원소에 대해 이야기하려 한다. 이 특별한 함수는 인자를 그대로 돌려준다. 그래서 이 함수를 항등(identity) 함수라고 한다. 더 나아가 정수 곱셈이나 문자열 연결 등의 연산에서는 항등원(identity element)이라는 용어를 중립 원소 대신 사용한다. 코틀린에서는 다음과 같이 간단히 항등 함수를 정의할 수 있다.

val identity = { it } // <-- 구체적 타입을 지정해야 컴파일 오류가 나지 않음
                      // 예: val identity: (Int) -> Int = { it }
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.