5

「Programming in Scala」(赤い本) という本を読んでいます。

モノイドに関する章で、モノイド準同型が何であるかを理解しています。たとえばM、連結とlength関数を使用した文字列モノイドfはモノイド構造を保持するため、準同型です。

M.op(f(x), f(y)) == M.op(f(x) + f(y))
// "Lorem".length + "ipsum".length == ("Lorem" + "ipsum").length

本を引用します(記憶によるので、間違っていたら訂正してください:

これが両方向で発生する場合、モノイド同型写像と呼ばれます。これは、モノイドM, N、関数f, gf andThen gおよびg andThen fが関数であることを意味しidentityます。たとえば、StringモノイドList[Char]と連結を伴うモノイドは同形です。

しかし、これを見るための実際の例を見ることはできません。関数としてしか考えられませんが、どうなりfますか?lengthg

注: 私はこの質問を見ました: What are is isomorphism and homomorphisms .

4

2 に答える 2