-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating

Learning Functional Programming in Go
By :

Monoids are the most basic way to combine any values. A monoid is algebra that is closed under an associative binary operation and has an identity element.
We can think of a monoid as a design pattern that allows us to quickly reduce (or fold) on a collection of a single type in a parallel way.
A monoid is anything that satisfies the following rules:
Let's discuss these rules in brief.
“If you combine two values of same type, you get another value of the same type.”
Given two inputs of the same type, a monoid returns one value of the same type as the input.
1 + 2 = 3, and 3 is an integer.
1 + 2 + 3 also equals an integer.
1 + 2 + 3 + 4 also equals an integer.
Our binary operation has been extended into an operation that works on lists!
If a, b ∈ S, then a + b ∈ S.
That says, if a and b are any two values in the set S of integers and if we apply the binary operation + to any two values, then...