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
            }
        }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.