코틀린의 중위 호출(부록 B 중위 함수 참고) 형식을 사용하면 이 코드를 다음과 같이 좀 더 선언적인 스타일로 바꿀 수 있다.
val processFun = ::extractListData andThen
::fetchListContent andThen
::renderHtml andThen
::createResponse
fun fetchList(request: Request): Response = processFun(request)
즉, f andThen g는 g(f())와 동일하다. 함수 타입을 정의할 때 다음과 같이 타입 별명을 사용하면 편리하다.
typealias FUN<A, B> = (A) -> B
infix fun <A, B, C> FUN<A, B>.andThen(other: FUN<B, C>): FUN<A, C>
= TODO()
연습 문제를 풀려면 TODO() 호출 대신 함수 구현을 넣어야 한다.