Semigroup型クラス
半群
結合律を満たす二項演算を提供する
定義
code:hs
class Semigroup a where
(<>) :: a -> a -> a
<>
Monoid型クラスのスーパークラスである
GHC8.4(base 4.11)以降
2018/3頃。なので、ブログなどの日付に注意mrsekut.icon
もともとMonoid型クラスのメソッドだったmappendは、Semigroupの<>になった
故に、Monoidの定義をするときに、Semigroupのインスタンスになっていないとエラーが出る
code:error
Example.hs:8:10: error:
・ No instance for (Semigroup Metrics)
arising from the superclasses of an instance declaration
・In the instance declaration for ‘Monoid Metrics’
詳しくはref
fp-ts
Magma型クラスを継承する
即ち、concat()を定義する
https://dev.to/gcanti/getting-started-with-fp-ts-semigroup-2mf7
https://logmi.jp/tech/articles/320848
https://kazu-yamamoto.hatenablog.jp/entry/2018/11/29/155311
https://wiki.haskell.org/Data.Semigroup
https://ps.wado.dev/entries/DwKR2u72Hx28FbpG
http://eed3si9n.com/herding-cats/ja/Semigroup.html
https://blog.ploeh.dk/2019/12/30/semigroup-resonance-fizzbuzz/
https://haskell.e-bigmoon.com/posts/2019/12-24-ap-monoid.html
https://aiya000.github.io/Maid/haskell-day-2018-algebra/#/
https://typeclasses.com/semigroup