Jump to ratings and reviews
Rate this book

Learning Functional Programming: Managing Code Complexity by Thinking Functionally

Rate this book
Learn how to think and write code like a functional programmer. With this practical guide, software developers familiar with object-oriented programming will dive into the core concepts of functional programming and learn how to use both functional and OOP features together on large or complex software projects.

Author Jack Widman uses samples from Java, Python, C#, Scala, and JavaScript to help you gain a new perspective and a set of tools for managing the complexity in your problem domain. You'll be able to write code that's simpler, reusable, easier to test and modify, and more consistently correct. This book also shows you how to use patterns from category theory to help bridge the gap between OOP and functional programming.

Learn functional programming fundamentals and explore the way functional programmers approach problemsUnderstand how FP differs from object-oriented and imperative programmingUse a set of practical, applicable design patterns that model reality in a functional wayLearn how to incorporate FP and OOP features into software projectsApply functional design patterns appropriately and use them to write correct, robust, and easily modifiable code

186 pages, Kindle Edition

Published August 11, 2022

5 people are currently reading
19 people want to read

About the author

Jack Widman

2 books

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
0 (0%)
4 stars
5 (20%)
3 stars
8 (32%)
2 stars
10 (40%)
1 star
2 (8%)
Displaying 1 - 6 of 6 reviews
Profile Image for Sorasenpai.
7 reviews1 follower
August 28, 2024
"This book could be a decent introduction to functional programming, but it's unlikely to significantly improve your existing skills. It started off strong, but as it went on, it became more of a Scala tutorial rather than focusing on functional programming concepts."
48 reviews5 followers
December 29, 2022
meh.

Very great introductory chapters, but falls flat on medium and advanced topics. I already know that monads exist. What would be great in this text is an example of using them for a practical purpose. Instead there's some dumbed-down category theory. Not horrible, per se, but also not what was promised in the earlier parts of the text.

Like for instance... JavaScript has the github.com/fantasyland/fantasy-land functional programming "library." It's useful for not only doing what you want, but providing an executable description of mental models used in functional programming. I'm not saying the author should have said "hey. here's fantasy-land, knock yourself out." But it's a great example of code that could help explain more complex concepts.
Profile Image for John.
18 reviews
February 21, 2024
I'm not quite done with this book but already am unimpressed.

I found the discussion of domain/range/codomain really confusing until I learned that the term "whole number" is considered "colloquial" (see e.g. wikipedia for discussion). Why not just call them integers? This is a book about programming after all.

I've already noticed a misspelling in the book as well, which gives the impression that not a lot of effort went into editing it.
23 reviews
August 30, 2022
An excellent introduction to functional concepts but it feels like too much theoretical
2 reviews
September 1, 2025
Too little depth/explanations. The first half is good enough, and the second might be ok if you're into Scala, but feels rushed.

The Portuguese translation is bad in many ways though.
Displaying 1 - 6 of 6 reviews

Can't find what you're looking for?

Get help and learn more about the design.