私は現在、scalaの圏論について学んでおり、結合性の法則は次のように言っています
(x + y) + z = x + (y + z)
2 つ以上の値を扱う場合は問題ありません
("Foo" + "Bar") + "Test" == "Foo" + ("Bar" + "Test") // true
その場合、順序は関係ありません。しかし、値が 2 つしかない場合はどうでしょう。数値の場合はまだ機能していますが(可換)、文字列で同じことを行うと失敗します。
3+1==1+3 // True
("Foo" + "Bar") == ("Bar" + "Foo") // Not commuative
では、結合性がモノイド法則を満たすために交換性を必要とすると言うのは合法でしょうか? とにかく、文字列モノイドは有効ですか?