KOTLIN · 함수
부분 적용 (Partial Application)
함수의 일부 인수를 고정하여 새로운 함수를 만듭니다. 커링과 달리 여러 인수를 한번에 고정할 수 있습니다.
함수고급partial-applicationhigher-orderfunction-factory
핵심 설명
함수의 일부 인수를 고정하여 새로운 함수를 만듭니다. 커링과 달리 여러 인수를 한번에 고정할 수 있습니다.
Kotlin code
// 부분 적용 유틸리티
fun <A, B, R> partial(f: (A, B) -> R, a: A): (B) -> R =
{ b -> f(a, b) }
fun <A, B, C, R> partial2(f: (A, B, C) -> R, a: A, b: B): (C) -> R =
{ c -> f(a, b, c) }
fun multiply(a: Int, b: Int) = a * b
fun sendEmail(from: String, to: String, body: String) {
println("From: $from | To: $to | Body: $body")
}
fun main() {
// 곱셈기 생성
val double = partial(::multiply, 2)
val triple = partial(::multiply, 3)
println(double(5)) // 10
println(triple(5)) // 15
// 발신자 고정
val sendFromAdmin = partial2(::sendEmail, "admin@co.kr", "user@co.kr")
sendFromAdmin("가입을 환영합니다!")
sendFromAdmin("비밀번호가 변경되었습니다")
// 리스트에 적용
val numbers = listOf(1, 2, 3, 4, 5)
println(numbers.map(double)) // [2, 4, 6, 8, 10]
}학습 팁
부분 적용은 의존성을 미리 주입하거나, 반복적인 호출에서 공통 인수를 제거할 때 깔끔합니다.
주의할 점
부분 적용과 커링을 혼동하지 마세요. 부분 적용은 N개 인수를 고정하고, 커링은 인수를 하나씩 받는 함수 체인으로 변환합니다.
자주 묻는 질문
부분 적용 (Partial Application)란 무엇인가요?
함수의 일부 인수를 고정하여 새로운 함수를 만듭니다. 커링과 달리 여러 인수를 한번에 고정할 수 있습니다.
부분 적용 (Partial Application) 학습 시 주의할 점은 무엇인가요?
부분 적용과 커링을 혼동하지 마세요. 부분 적용은 N개 인수를 고정하고, 커링은 인수를 하나씩 받는 함수 체인으로 변환합니다.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.