Summary -「Semigroup と Monoid と Functional と」
一个被国内 oi 环境弱化至几乎不存在的概念,不过我觉得还是有学一学的必要。因为我没学过代数结构所以大部分内容都在开黄腔,欲喷从轻。
Semigroup 的定义是,∀a,b∈S,有 a⋅b∈S 并且 (a⋅b)⋅c=a⋅(b⋅c),则称 ⟨S,⋅⟩ 为一个 semigroup,称其中的二元运算 ⋅:S⋅S→S 为半群的乘法。
Semigroup 与 group 的区别在于有无幺(identity element),并且所有元素均有逆。
Monoid 则是在 semigroup 的基础上添加了一个幺,翻译过来即幺半群。
有了这些理论支撑,我们在解决一系列数据结构问题时的思维将得到几乎为零的简化