In this chapter, we will cover the following recipes:
- Working effectively with lambda expressions
 - Discovering basic scoping functions – let, also, and apply
 - Initializing objects the clean way using the run scoping function
 - Working with higher-order functions
 - Functions currying
 - Function composition
 - Implementing the Either Monad design pattern
 - Approach to automatic function memoization