Functional Programming in Go (Golang)
300 pages
English
PDF
4.5

Functional Programming in Go (Golang)

Functional Programming in Go (Golang)

Author:

Year:

Summary:

This book is a practical guide to implementing the functional programming (FP) paradigm in the Go ecosystem. Unlike Haskell or Scala, Go is not a purely functional language, but its powerful features (closures, first-class functions, interfaces) allow you to successfully apply key FP principles to create more predictable, testable, and concurrency-safe code.



What the book is about

The book systematically introduces the reader to the fundamental concepts of FP and shows how to implement them in Go:

  • Pure functions and immutability: how to avoid side effects, make code deterministic and easily testable.
  • Higher-order functions: map, filter, reduce for slices and channels.
  • Closures and currying: creating function factories and partial application of arguments.
  • Function composition: building data processing pipelines without nested calls.
  • Error handling with monads: an alternative to the classic if err != nil — the Maybe (Option) and Either patterns.
  • Lazy evaluation and infinite sequences: efficient work with large data.
  • Concurrency and the functional approach: using channels and goroutines in a functional style.


Who this book is for

  • Go developers with 1+ years of experience who want to write cleaner, more declarative code.
  • Programmers familiar with FP in other languages looking for analogies in Go.
  • Architects aiming to reduce the number of states and mutations in microservices.


What you will learn

  • How to write functions without side effects and manage state through closures.
  • How to replace loops with recursion and higher-order functions.
  • How to build operation chains using composition and the "Pipeline" pattern.
  • How to handle errors without nested checks using the monadic approach.
  • How to design APIs that are resilient to change and easy to test.


All code examples are tested on Go 1.21+ and come with tests. The book contains ready-made templates for real projects: from processing HTTP requests to working with databases in a functional style.



Perfect for those who want to go beyond imperative programming and master a new level of abstraction in Go.

Recommendations