First-class functions/methods make it possible to separate the concerns at the function/method level in our code. We can define generic functions that can act as pattern templates at the function/method level, as we have seen in Chapter 2, Functions and Closures, in the First-class functions section.