Functions are the cornerstone of any modern language, and the full range of features Kotlin provides allows developers to be more expressive, yet write less code. In this chapter, we have introduced some of features that differentiate Kotlin from Java, such as extension functions, default parameters, operations, index, and top-level functions.
As we will see in Chapter 5, Higher-Order Functions and Functional Programming, functions are the key to using the pattern known as higher-order functions. Higher-order functions allow functions to be passed to other functions, and you will see how powerful this abstraction can be.