2022-08-01から1ヶ月間の記事一覧

Foldable and Traverse

今日も今日とてScala with Catsを読む。 この章ではコレクションに対するイテレーションの2つの型クラスについて見ていく。 Foldable foldLeftやfoldRightの操作を抽象化したもの Traverse Applicativeを使ってfoldingよりも少ない手間でイテレートを行う高…

Semigroupal and Applicative

今日も今日とてScala with Catsを読んでいく。 Semigroupal and Applicative Semigroupal コンテキストのペアを構成する概念を内包する CatsはSemigroupalとFunctorを利用して、複数の引数を持つ関数のシーケンスを可能にするcats.syntax.applyモジュールを…

Monda Transformers

引き続き、Scala with Catsを読んでいく。 Monad Transformers Monadはネスト化されたfor-comprehensionsによってコードを肥大化させる可能性がある。 Exercise: Composing Monads M1, M2というモナドを合成したComposed[A]という型のflatMapを実装できるか…

Monads

Scala with Catsを読んでいく What is a Monad? ざっくり言うと、MonadはコンストラクタとflatMapメソッドを持つもの。 Option[A] flatMap (A => Option[B]) => Option[B] すべてのMonadはFunctorでもある。 ※ flatMapとmapメソッドを持っていれば、for-comp…

Functors

引き続き、Scala with Catsを読んでいく。 Functors Functorとはざっくり言うと、map メソッドを持ったものと言える。 通常、Listsの反復処理でmapメソッドに出会うが、Functorを理解するには別の視点で考える必要がある。 「Listsを走査する」と考えるので…

Monoids and Semigroups

お久しぶりです。一週間ちょっと前にコロナに感染してから常に身体が怠くて頭も重いから仕事でもプライベートでも何もやる気になりません。 ただ、このままずっとベッドの上で寝ていても良くないので、Scala with Catsを読み始めました。 www.scalawithcats.…