[kotlin] 코틀린에서 함수와 메서드의 부분 적용

함수적 프로그래밍에서 부분 적용이란 함수에 여러 개의 인수를 부분적으로 적용하여 새로운 함수를 만드는 기술을 의미합니다. 코틀린에서는 함수와 메서드를 부분 적용하는 여러 가지 방법이 있습니다. 이번에는 코틀린에서 함수와 메서드의 부분 적용을 살펴보겠습니다.

함수의 부분 적용

코틀린에서 함수의 부분 적용은 fun 키워드를 사용하여 함수를 정의하고, 이를 다양한 방식으로 활용할 수 있습니다. 예를 들어, 다음과 같이 함수를 정의할 수 있습니다.

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

이제 sum 함수를 부분 적용하여 새로운 함수를 만들어보겠습니다.

val add5 = { b: Int, c: Int -> sum(5, b, c) }

여기서 add5sum 함수에 a를 5로 고정한 새로운 함수가 됩니다. 이렇게 부분 적용을 통해 새로운 함수를 만들어낼 수 있습니다.

메서드의 부분 적용

코틀린에서는 메서드의 부분 적용 또한 가능합니다. 메서드는 클래스나 객체에 속한 함수이므로, 메서드를 부분 적용한다는 것은 해당 클래스나 객체의 메서드를 부분 적용하는 것을 의미합니다. 예를 들어 다음과 같이 메서드를 정의하고 부분 적용할 수 있습니다.

class Calculator {
    fun multiply(a: Int, b: Int) = a * b
}

이제 Calculator 클래스의 multiply 메서드를 부분 적용하여 새로운 함수를 만들어보겠습니다.

val multiplyBy3 = Calculator()::multiply.partially1(3)

여기서 partially1은 함수를 부분적으로 적용하는 확장 함수입니다. 이렇게 함으로써 multiplyBy3 함수는 multiply 메서드의 a를 3으로 고정한 새로운 함수가 됩니다.

결론

코틀린에서는 함수와 메서드의 부분 적용을 통해 유연하고 간결한 코드를 작성할 수 있습니다. 이를 통해 반복적이고 불필요한 코드를 줄이고, 함수적 프로그래밍의 장점을 살려 더 효율적인 코드를 작성할 수 있습니다.

더 많은 정보는 코틀린 공식 문서를 참고할 수 있습니다.