[kotlin] 코틀린에서 함수형 프로그래밍을 위한 고차 함수

코틀린은 함수형 프로그래밍을 지원하는 다양한 기능을 제공합니다. 고차 함수는 그 중 하나로, 함수를 인자로 받거나 함수를 반환하는 함수를 의미합니다. 이러한 고차 함수를 활용하면 코드의 재사용성을 높일 뿐만 아니라 간결하고 가독성 좋은 코드를 작성하는데 도움이 됩니다.

고차 함수의 정의

고차 함수는 다음과 같이 정의될 수 있습니다.

fun <T, R> higherOrderFunction(func: (T) -> R): (T) -> R {
    return func
}

위의 코드에서 higherOrderFunction은 함수 func를 인자로 받고, func와 동일한 시그니처를 갖는 함수를 반환합니다.

고차 함수의 활용

고차 함수를 사용하여 다양한 기능을 구현할 수 있습니다. 예를 들어, 아래의 고차 함수는 주어진 리스트에서 특정 조건을 만족하는 항목들을 필터링하는 기능을 수행합니다.

fun filterList(list: List<Int>, predicate: (Int) -> Boolean): List<Int> {
    return list.filter(predicate)
}

위의 코드에서 filterList 함수는 List<Int>predicate 함수를 인자로 받아 조건에 맞는 항목들을 필터링합니다. 이때, predicate 함수는 주어진 조건을 만족하는지를 판별하는 역할을 합니다.

실제 활용 예제

고차 함수를 사용하여 간단한 예제를 살펴보겠습니다. 아래의 코드는 주어진 숫자 리스트에서 짝수만을 필터링하는 고차 함수를 활용한 예제입니다.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    val evenNumbers = filterList(numbers) { it % 2 == 0 }
    println(evenNumbers) // 출력: [2, 4, 6, 8, 10]
}

위의 예제에서 filterList 함수를 활용하여 주어진 숫자 리스트에서 짝수만을 필터링하고 있습니다.

결론

코틀린의 고차 함수를 활용하면 함수형 프로그래밍의 다양한 기법을 적용할 수 있습니다. 이를 통해 코드의 재사용성을 높이고 가독성이 뛰어난 코드를 작성할 수 있습니다.

참조: