Swiftでのモノイドの実装とその合成
モノイドは以下の項目により構成されます。
- 型A
- A型の二つの値をとり、一つのA型を返す演算op。A型であるx, y, zに対してop(op(x, y), z)==op(x, op(y, z))が成立する。例えば文字列の連結の場合"ab", "cd", "ef"の場合("ab"+"cd")+"ef"と"ab"+("cd"+"ef")は同じになります。
- 演算の単位元であるA型のzero。A型のxに対してop(x, zero)==xならびにop(zero, x)=