Summary
This chapter gave us insights into how we can implement logic with different flavors of implementation. We talked about for expressions and their translation into higher-order functions. We saw how pattern matching can make complex logic look very simple. We also talked about constructs such as Option
and the lazy
keyword. These enable us to write code that is meaningful and optimized. Then we discussed tail call optimization. We confronted combinators, and then finally we got an introduction to type parameterization.
In the next chapter, we'll start from where we ended this chapter. We'll talk more about types, parameterized types, and variance relationships, and let me tell you, that will be fun.