There's no need to fear going functional! This friendly, lively, and engaging guide is perfect for any perplexed programmer. It lays out the principles of functional programming in a simple and concise way that will help you grok what FP is really all about.
In Grokking Functional Programming you will learn:
Designing with functions and types instead of objects
Programming with pure functions and immutable values
Writing concurrent programs using the functional style
Testing functional programs
Multiple learning approaches to help you grok each new concept
If you've ever found yourself rolling your eyes at functional programming, this is the book for you. Open up Grokking Functional Programming and you'll find functional ideas mapped onto what you already know as an object-oriented programmer. The book focuses on practical aspects from page one. Hands-on examples apply functional principles to everyday programming tasks like concurrency, error handling, and improving readability. Plus, puzzles and exercises let you think and practice what you're learning. You'll soon reach an amazing "aha" moment and start seeing code in a completely new way.
About the technology
Finally, there's an easy way to learn functional programming! This unique book starts with the familiar ideas of OOP and introduces FP step-by-step using relevant examples, engaging exercises, and lots of illustrations. You'll be amazed at how quickly you'll start seeing software tasks from this valuable new perspective.
About the book
Grokking Functional Programming introduces functional programming to imperative developers. You'll start with small, comfortable coding tasks that expose basic concepts like writing pure functions and working with immutable data. Along the way, you'll learn how to write code that eliminates common bugs caused by complex distributed state. You'll also explore the FP approach to IO, concurrency, and data streaming. By the time you finish, you'll be writing clean functional code that's easy to understand, test, and maintain.
What's inside
Designing with functions and types instead of objects
Programming with pure functions and immutable values
Writing concurrent programs using the functional style
Testing functional programs
About the reader
For developers who know an object-oriented language. Examples in Java and Scala.
About the author
Michal Plachta is an experienced software developer who regularly speaks and writes about creating maintainable applications.
Table of Contents
Part 1 The functional toolkit
1 Learning functional programming
2 Pure functions
3 Immutable values
4 Functions as values
Part 2 Functional programs
5 Sequential programs
6 Error handling
7 Requirements as types
8 IO as values
9 Streams as values
10 Concurrent programs
Part 3 Applied functional programming
11 Designing functional programs
12 Testing functional programs