부분 함수와 이름이 비슷하지만 관계없다.
부분 적용 함수 : 말그대로 부분적으로 적용한 함수이다. 매개변수의 일부만 전달받았을 때, 제공받은 매개변수만 가지고 연산하는 함수이다.
fun main(args: Array<String>){
val func = {a : String, b : String -> a+b}
val partiallyAppliedFunc = func.partial("Hi"); // 매개변수 a,b중 a만 적용 : 부분적용됨
val ret = partiallyAppliedFunc(" Hello"); // a,b 둘다 적용된 상태
println("result : $ret ")
}
fun <P1,P2,R> ((P1,P2)-> R).partial(p1: P1) : P2 ->R {
return { p2 -> this(p1,p2) }
}
.partial 확장함수는 부분 적용 함수를 생성하기 위해 만든 것이다.
그 것을 통해 만든 partiallyAppliedFunc은 부분 적용된 결과이다. (매개변수 두개중 하나만 적용되었다.)
부분 적용 함수의 목적
1. 코드 재사용
2. 커링 함수(curried functions ) 만들기 위해 필요한 개념
728x90
반응형
'프로그래밍 > 프로그래밍언어' 카테고리의 다른 글
[4장 고차함수] 커링함수 - 확장함수 만들기 (0) | 2021.12.03 |
---|---|
[4장 고차함수] 커링함수 (2) | 2021.12.01 |
[4장 고차함수] 4.2 부분함수 (0) | 2021.11.29 |
[4장 고차함수] 고차함수란 (0) | 2021.11.28 |
[3장 재귀] 3.7 실전 응용 - 멱집합 구하는 함수 (0) | 2021.11.19 |