3

半群が与えられた場合、「何かを n 回実行する」という概念を形式化する「整数乗算」を定義したいと思います。

intMul n s == s <> s <> ... <> s任意のおよびsに対して、右側にが n 回出現します。Int nSemigroup s

これはかなり一般的な概念のように思えるので、これには代数/群論的構造が既にあると思います。存在する場合、この構造の名前は何ですか? また、標準の purescript ライブラリの 1 つによって提供されますか?

そして、これを自分で書く必要がある場合: これの実装は各セミグループで同じです。これは、型クラスがこれを表現するための正しい選択ではないということですか?

編集:「intmultiplying」をゼロで適切に定義するには、半群ではなくモノイドが必要だと思いますintMul 0 s == mempty。そして、負の Int による乗算を許可したい場合は、実際には逆要素、つまりグループが必要になります。純粋なスクリプトで型クラスを持っていないように見えるのはどれですか?

4

1 に答える 1