[kotlin] 코틀린 표준 라이브러리에서 제공하는 함수형 인터페이스

코틀린은 함수형 프로그래밍 언어로서, 함수형 프로그래밍의 여러가지 특징을 지원합니다. 코틀린 표준 라이브러리에는 함수형 프로그래밍을 지원하기 위한 다양한 함수형 인터페이스가 포함되어 있습니다. 이러한 인터페이스들은 람다 표현식과 함께 사용하여 코드를 간결하게 작성하고, 함수형 프로그래밍의 장점을 최대한 활용할 수 있습니다.

주요 함수형 인터페이스

코틀린 표준 라이브러리에서 제공하는 주요 함수형 인터페이스는 다음과 같습니다.

1. FunctionN

Function0, Function1, Function2, … 와 같은 형태로 표현되는 FunctionN 인터페이스는 N개의 인자를 받아들이는 함수를 표현합니다. 예를 들어, Function1은 하나의 인자를 받아들이는 함수를 나타냅니다.

val function: (Int) -> String = { "Number $it" }

2. (A, B) -> R

(A, B) -> R 형태의 함수형 인터페이스는 A와 B 타입의 두 개의 인자를 받아 R 타입의 결과를 반환하는 함수를 나타냅니다. 이러한 함수형 인터페이스는 BiFunction과 유사한 역할을 합니다.

val sum: (Int, Int) -> Int = { a, b -> a + b }

3. Predicate

Predicate 인터페이스는 주어진 입력에 대한 논리적인 조건을 나타내는 함수형 인터페이스이며, test 메서드를 활용하여 주어진 조건에 대한 판별을 수행합니다.

val isEven: (Int) -> Boolean = { it % 2 == 0 }

4. Consumer

Consumer 인터페이스는 주어진 입력을 받아 어떠한 작업을 수행하는 함수형 인터페이스입니다.

val printValue: (String) -> Unit = { println(it) }

결론

코틀린 표준 라이브러리에서 제공하는 함수형 인터페이스는 다양한 함수형 프로그래밍 기법을 지원하고, 람다 표현식과 함께 사용하여 간결하고 효율적인 코드를 작성하는데 도움을 줍니다. 이러한 함수형 인터페이스를 적재적소에 활용하여 코틀린으로 함수형 프로그래밍을 보다 효과적으로 구현할 수 있습니다.

참고 자료