인식 부하 감소

if (person != null && person.isAdult) {
    view.showPerson(person)
} else {
    view.showError()
}
// vs
person?.takeIf { it.isAdult }
    ?.let(view::showPerson)
    ?: view.showError()

책에서는 전통적 스타일인 전자 형태로 구현한 방법이 좀더 가독성이 좋다고 주장하고 있음( 코틀린 문법에 적응하지 못했을 경우 어려울 수 있다?)

→ 전혀 그렇게 생각되지 않음. 코틀린 문법이 배우는데 오래걸리는것도 아니고, 함수형이 일반적으로 전통적인 방법보다 훨씬 사람이 이해하기 편하다고 생각함

극단적이지 않게 되기

students
    .filter { it.result >= 50 }
    .joinToString(separator = "\\n") { "${it.name} ${it.surname}, ${it.result}" }
    .let(::print)

var obj = FileInputStream("/file.gz")
    .let(::BufferedInputStream)
    .let(::ZipInputStream)
    .let(::ObjectInputStream)
    .readObject() as SomeObject

let을 사용하기 좋은 2가지 예.

비용을 지불할만한 가치가 있고 비용은 그럴 가치가 있을떄만 지불해야한다….

컨벤션

컨벤션에는 여러가지 것들이 있고, 앞으로 그걸 알아볼 예정