[kotlin] 코틀린에서의 부분 함수와 커링의 사용 사례

함수형 프로그래밍에서 부분 함수(partial function)와 커링(currying)은 코드를 간결하고 유연하게 만드는 데 도움이 됩니다. 코틀린에서도 이러한 기법을 활용하여 코드를 효율적으로 작성할 수 있습니다.

부분 함수 (Partial Function)

부분 함수는 일부 인수만을 받아들이는 함수로, 누락된 인수에 대한 기본값을 가질 수 있습니다. 코틀린에서는 fun 키워드를 사용하여 부분 함수를 정의할 수 있습니다.

fun add(a: Int, b: Int, c: Int) = a + b + c

val addTwo = { b: Int, c: Int -> add(2, b, c) }
val result = addTwo(3, 4)  // 결과: 9

위 예제에서 addTwo 함수는 add 함수에서 첫 번째 인수를 2로 고정한 부분 함수입니다. 이를 통해 코드를 간결하게 유지하면서도 다양한 상황에 대응할 수 있습니다.

커링 (Currying)

커링은 여러 개의 인수를 받는 함수를 단일 인수를 받는 여러 개의 함수로 분해하는 기법입니다. 코틀린에서는 fun 키워드와 익명 함수를 활용하여 커링을 구현할 수 있습니다.

fun add(a: Int) = { b: Int -> { c: Int -> a + b + c } }

val addTwo = add(2)
val addThreeAndFour = addTwo(3)(4)
val result = addThreeAndFour  // 결과: 9

위 예제에서 add 함수는 인수를 하나만 받는 함수를 반환하도록 정의되어 있습니다. 이를 통해 인수를 차례대로 적용하여 코드를 더 유연하게 관리할 수 있습니다.

결론

코틀린에서 부분 함수와 커링을 활용하여 코드를 간결하게 작성하고 유연하게 관리할 수 있습니다. 이러한 함수형 프로그래밍의 기법을 익혀두면 다양한 상황에서 유용하게 활용할 수 있을 것입니다.

참고 문헌: