더북(TheBook)

연습문제 3-7(쉬움)

인자를 두 개 받는 fun 함수를 작성하라. 이 함수의 두 번째 인자는 인자를 두 개 받는 커리한 함수이고, 첫 번째 인자의 타입은 두 번째 인자(함수 값)의 첫 번째 인자와 같은 타입이다. 이 함수는 두 번째 인자(함수 값)에 첫 번째 인자(값)을 적용한 결과(함수 값)를 돌려준다.

해법

작성해야 할 내용이 없다. 이 함수의 시그니처는 다음과 같다.

fun <A, B, C> partialA(a: A, f: (A) -> (B) -> C): (B) -> C

첫 번째 인자를 함수에 부분 적용하는 것은 두 번째 인자(함수 값)를 첫 번째 인자에 적용하는 것과 똑같이 쉽다는 사실을 알 수 있다.

fun <A, B, C> partialA(a: A, f: (A) -> (B) -> C): (B) -> C = f(a)

partialA를 어떤 식으로 사용하는지 보고 싶다면 이 책의 코드에 들어 있는 이 연습문제의 단위 테스트를 살펴보라.

원래 함수의 타입이 (A) -> (B) -> C임을 알고 있을 것이다. 그렇다면 두 번째 인자를 부분 적용하고 싶을 때는 어떻게 해야 할까?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.