프로그래밍/프로그래밍언어

[4장 고차함수] 4.3 부분 적용 함수

Hithero 2021. 11. 30. 20:45

부분 함수와 이름이 비슷하지만 관계없다.

부분 적용 함수 : 말그대로 부분적으로 적용한 함수이다. 매개변수의 일부만 전달받았을 때, 제공받은 매개변수만 가지고 연산하는 함수이다.

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
반응형