Summary

This chapter was dedicated to some of the functional programming theories that seem to put many people off pure functional programming. Mostly, because the majority of explanations require strong mathematical background, we see people avoiding the concepts covered in this chapter.

We talked about monoids, monads, and functors, and we showed some examples of how to use them and what is the difference between having and not having them. It turns out that we use these concepts more often than we think, but we just don't realize it.

We saw that monoids, functors, and monads can be used for a variety of purposes—performance optimization, abstraction, and removal of code duplication. Properly understanding these concepts and feeling comfortable with them might take some time initially, but after some practice, developers tend to get a much better understanding and use them much more often than before. Hopefully, this chapter has made monoids, monads, and functors look much simpler than you must have thought and you will make them a part of the production code more often.

In the next chapter, we will cover some functional programming design patterns that are specific to Scala due to its expressiveness. Some of them would be new and previously unseen, while others we have already met, but will see from a different perspective.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.18.101