[kotlin] 코틀린에서의 부분 함수와 커링
함수형 프로그래밍은 함수를 다루는 것을 중점으로 한 패러다임으로, 부분 함수(partial function)와 커링(currying)은 중요한 개념입니다. 코틀린은 이러한 함수형 프로그래밍을 지원하며, 부분 함수와 커링을 사용하여 코드를 간결하게 작성할 수 있습니다.
부분 함수 (Partial Function)
부분 함수는 함수의 일부 파라미터만을 이용하여 새로운 함수를 생성하는 기법입니다. 코틀린에서는 partial
함수를 이용하여 부분 함수를 생성할 수 있습니다.
예를 들어, add
함수가 있다고 가정해봅시다.
fun add(a: Int, b: Int, c: Int): Int {
return a + b + c
}
이제 add
함수의 일부 파라미터를 고정하여 새로운 함수를 생성해보겠습니다.
val add5 = ::add.partial(5) // b=5, c=5인 새로운 함수 생성
val result = add5(3, 2) // 결과: 10
::add.partial(5)
를 통해 b
와 c
파라미터를 5로 고정하여 새로운 함수 add5
를 생성하였습니다.
커링 (Currying)
커링은 여러 개의 파라미터를 가진 함수를 한 개의 파라미터를 가진 여러 개의 함수들로 변환하는 기법입니다. 코틀린에서는 curried()
함수를 이용하여 커링을 할 수 있습니다.
예를 들어, 다음과 같은 add
함수가 있다고 가정해봅시다.
fun add(a: Int, b: Int, c: Int): Int {
return a + b + c
}
여기서 add
함수를 커링하여 새로운 함수를 생성해보겠습니다.
val curriedAdd = ::add.curried()
val result = curriedAdd(5)(3)(2) // 결과: 10
::add.curried()
를 통해 add
함수를 커링하여 curriedAdd
함수를 생성하였습니다. 이후에는 각 파라미터를 개별적으로 호출하여 사용할 수 있습니다.
함수형 프로그래밍을 위한 부분 함수와 커링은 코드의 재사용성과 가독성을 높여주는 중요한 개념입니다. 코틀린에서 이러한 기법을 적절히 활용하여 더욱 간결하고 유지보수가 용이한 코드를 작성할 수 있습니다.