Back to Fpinscala

14.Answer

answerkey/parallelism/14.answer.md

latest255 B
Original Source
scala
def join[A](ppa: Par[Par[A]]): Par[A] =
  es => ppa.run(es).get().run(es)

def joinViaFlatMap[A](ppa: Par[Par[A]]): Par[A] =
  ppa.flatMap(identity)

extension [A](pa: Par[A]) def flatMapViaJoin[B](f: A => Par[B]): Par[B] =
  join(pa.map(f))