Book Image

Learning Functional Programming in Go

By : Lex Sheehan
Book Image

Learning Functional Programming in Go

By: Lex Sheehan

Overview of this book

Lex Sheehan begins slowly, using easy-to-understand illustrations and working Go code to teach core functional programming (FP) principles such as referential transparency, laziness, recursion, currying, and chaining continuations. This book is a tutorial for programmers looking to learn FP and apply it to write better code. Lex guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. The book is divided into four modules. The first module explains the functional style of programming: pure functional programming, manipulating collections, and using higher-order functions. In the second module, you will learn design patterns that you can use to build FP-style applications. In the next module, you will learn FP techniques that you can use to improve your API signatures, increase performance, and build better cloud-native applications. The last module covers Category Theory, Functors, Monoids, Monads, Type classes and Generics. By the end of the book, you will be adept at building applications the FP way.
Table of Contents (21 chapters)
Title Page
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Index

Our goal


By the end of this chapter, we will see value in those math classes we took back in school. We'll understand how the things we learned in our high school math classes can be applied when horizontally scaling our software solutions.

The following diagram implies that Category Theory, functional programming, and logic are equivalent:

Huh?

I thought Category Theory was about a sets of objects and the arrows that connect them and that Proof Theory was about using logic to prove something. And we all know that function programming is about software. How can all three things be related?

This seems about as useful as all those math classes we had to take in school, right?

Your pessimism is understandable. Please proceed with an open mind and remain seated. Mathematics, logic, and computation. They are just three different ways to approach solving the same problems.

How can Category Theory, Proof Theory, and functional programming be the same thing? (and why care?)

"Scientists derive satisfaction...