Scala with Cats を読んだので学習した内容のメモを残します。 2章のMonoids and Semigroupsです。 はじめに Monoidは二項演算と単位元を持つ代数的構造であり、Catsでは型クラスが提供されている。 Monoidの定義 CatsでのMonoidの定義を簡略化したものが以下。 trait Monoid[A] { def combine(x: A, y: A): A def empty: A } combine(二項演算): A型の2つの値を結合させて1つのA型の値を返す empty(単位元): A型の空要素を返す という2つの操作がMonoidには定義されて…