Functional Programming in Go

Functional Programming in Go

English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 2h 22m | 456 MB

Code less and develop applications faster in Go by applying functional programming techniques. Be productive

Go as a language has proven to be an excellent tool for engineering large software projects. What makes Go stand out is its simplicity, productivity, and practicality when it comes to building large-scale applications. With the functional paradigm, you can do this faster, better, and effectively. This is why the time is right to go for this course.

This course immediately gets you started with Go’s functional principles. Covering high-order functions, immutability, evaluation, best practices, and testing, this content-heavy course is what you need in your library right now. Start using functional programming features in the future without sacrificing readiness or code simplicity.

By the end of the course, your mind will have been opened to a new paradigm, making you a better Go programmer.

This video adopts a real-world, step-by-step approach to teach you Go’s functional paradigm.

What You Will Learn

  • Effective ways to apply functional programming in Go
  • Write safe, error-resistant concurrent code
  • Use high-order functions
  • Build immutable data structures
  • Apply popular functional design patterns in Go
  • Use functional Go in toy projects
  • Easily test your functional Go code
  • Use streams, closures, and monads to build functional code
Table of Contents

A Quick Refresher in Go
1 The Course Overview
2 Setup and Installation
3 Go Basics – Variables, Structs, and Functions
4 Go Basics – Interfaces and Concurrency
5 OOP Example in Go

Higher Order Functions
6 An Overview of HOF
7 Exploring Pure Functions
8 Encapsulating External State
9 Understanding Closures

Function Literals and Streams
10 Overview of Function Literals
11 Anonymous Functions
12 Invoking Functions Directly
13 Lambda Expressions
14 Reactive Programming
15 Common Methods for Streams (Map, Reduce, Filter)

Immutability and Monads
16 Overview of Immutability
17 ImmutableMutable Data Structures in Go
18 Using const to Declare Variables
19 Immutable Maps
20 Immutable Structs
21 Building a Named Monoid

Lazy and Eager Evaluation
22 Overview of Lazy and Eager Evaluation
23 Using Closures
24 Emulating Generators Using Channels and Routines
25 Avoiding Re-Evaluation Using Sync
26 Short-Circuit Evaluation

Currying Functions in Go
27 An Overview of Currying and Partial Functions
28 Partial Functions
29 An Attempt to Currying in Go

Design Patterns
30 Popular Design Patterns
31 Exploring Monads
32 Observer Pattern
33 Decorator Pattern

Testing Functions in Go
34 Benefits of Testing FP Code
35 Unit Testing
36 Using httptest
37 Using Testify