3.3.9 부분 적용 함수의 인자 뒤바꾸기
함수가 인자를 두 개 받는데 첫 번째 인자만 적용해 부분 적용 함수를 만들고 싶을 때가 있다. 예를 들어 다음 함수를 보자.
val addTax: (Double) -> (Double) -> Double = { x -> { y -> y + y / 100 * x } }
대부분은 먼저 세율을 적용해서 가격을 인자로 받는 함수를 얻을 것이다.
val add9percentTax: (Double) -> Double = addTax(9.0)
이 함수가 있으면 다음처럼 세금을 더한 가격을 알 수 있다.
val priceIncludingTax = add9percentTax(price);
좋다. 하지만 처음부터 함수가 다음과 같았다면 어떻게 해야 할까?
val addTax: (Double) -> (Double) -> Double = { x -> { y -> x + x / 100 * y } }