Algebra

The Algebra module defines fundamental algebraic structures which help to simplify the world when it seems too complicated.

Unital Magmas

  • Zero
  • One

Semigroup

  • Semigroup
  • AdditiveSemigroup
  • MultiplicativeSemigroup

Monoid

  • Monoid
  • Additive
  • Multiplicative

MonoidView

  • Sum
  • Product

Group

  • Group
  • Invertible

Swift Standard Library Conformances and Extensions

The Algebra module conforms Swift stdlib types to many of these basic algebraic structures.

For example, the numeric types, Array and String are each Additive monoids, while Set is an Additive monoid and a MultiplicativeSemigroup. The numeric types are also Multiplicative monoids.

Sequence and Collection types which contain various algebraic elements are extended with helpful properties, such as .reduced for sequences which hold any kind of monoid.