We saw Scala functions in action in the last chapter. Passing functions to
filter allowed us to write code that was more readable and understandable. The looping was done in the method, allowing our application code to be cleaner and easier to maintain. In this chapter, we'll explore functions in more depth and learn about how functions allow us to encapsulate business logic and separate it from the imperative flow of control statements. We'll write our own control structures, including looping and automatic JDBC connection closers that will lead to cleaner, better code.
In Scala, functions are instances of classes. You can do anything ...