Back to Fpinscala

03.Answer

answerkey/monoids/03.answer.md

latest200 B
Original Source
scala
def endoMonoid[A]: Monoid[A => A] = new:
  def combine(f: A => A, g: A => A): A => A = f andThen g
  val empty: A => A = identity

def endoMonoidDual[A]: Monoid[A => A] = dual(endoMonoid)