我目前正在学习 scala 中的类别理论,并且结合律说
(x + y) + z = x + (y + z)
当使用两个以上的值时,这很好
("Foo" + "Bar") + "Test" == "Foo" + ("Bar" + "Test") // true
在这种情况下,顺序无关紧要。但是,如果只有两个值怎么办。如果对于数字它仍然有效(可交换)但是当对字符串做同样的事情时它会失败。
3+1==1+3 // True
("Foo" + "Bar") == ("Bar" + "Foo") // Not commuative
那么说关联性需要交换性来满足幺半群定律是否合法?那么 String Monoid 仍然有效吗?