Semigroup
A Semigroup is an object that express an binary associative operation. It is defined for a set, for example, like the set of Int in scala. This type of design pattern may seem so high-level as to be useless. However, it expresses the most basic idea of append.
for the set it describes. If you add numbers together, add items to a list or "add" together two of your domain objects then a Semigroup expresses this concept.
Last updated