더북(TheBook)

3.3.5 익명 함수 사용하기

지금까지는 함수에 이름을 붙여서 사용했다. 하지만 함수 이름을 정의하지 않고 익명 함수(anonymous function)를 그대로 사용할 수도 있다. 다음 코드를 살펴보자.

val f: (Double) -> Double = { Math.PI / 2 - it }
val sin: (Double) -> Double = Math::sin
val cos: Double = compose(f, sin)(2.0)

이와 같이 쓰는 대신에 익명 함수를 그대로 쓸 수 있다.

val cosValue: Double =
    compose({ x: Double -> Math.PI / 2 - x }, Math::sin)(2.0)

이 코드는 fun으로 패키지 수준에 정의된 compose 함수를 썼다. 하지만 HOF(고차 함수)를 사용하는 경우에도 똑같이 이런 방식을 적용할 수 있다.

val cos = higherCompose<Double, Double, Double>()
    ({ x: Double -> Math.PI / 2 - x })(Math::sin)
    val cosValue = cos(2.0)

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