
Learn how functional programming can help you with everyday tasksKey FeaturesGet introduced to functional programming from scratchLearn to program side-effecting applications in a pure wayGain expertise on working with array tools for functional programmingBook DescriptionIn large projects, programmers tend to get overwhelmed by complexity. It can be hard to keep track of all the interdependencies of the code base and how its state changes on runtime. The solution to these problems is Functional Programming. It is a paradigm specifically designed to deal with the complexity of software development. Mastering Functional Programming will show you how right abstractions can reduce complexity and make code easy to read and understand.The book starts with the basics, such as what lambdas are and how to write declarative code with the help of functions, and moves to more advanced concepts. We will cover the concepts of pure functions and type classes, problems they are aimed to solve, and how to use them in real-world scenarios. As we make our way through the book, we will look at the broad family of libraries for functional programming. Finally, we will discuss some of the more advanced patterns in the world of functional programming, such as Monad Transformers and Tagless Final. In the concluding chapters, you will be introduced to the Actor Model and implement it in modern functional languages and explore the subject of parallel programming.By the end of the book, you will have mastered the concepts entailing functional programming along with object-oriented programming (OOP) to build robust applications.What you will learnWrite programs in a declarative wayUse functional data structures and collectionsAbstract away side effects to functional typesSeparate data from behavior using type classesUse the most popular type classes: Monad, Applicative, and FunctorExplore patterns of functional programmingBuild software with functional librariesWrite parallel programs in a functional style using the Actor ModelWho This Book Is ForIf you are from an imperative and OOP background, Mastering Functional Programming will guide you through the world of functional programming, irrespective of which programming language you choose to use.About the AuthorAnatolii Kmetiuk is a CEO of FunctorTech OÜ, the Pure Functional Programming in Scala consultancy. During his programming career, he worked on Scala projects involving parallel computing, web APIs, SaaS and Data Engineering. His areas of expertise include applications of pure functional programming to build fault-tolerant, reactive systems, as well as parallel computing
Author: Anatolii Kmetiuk