2回目のDuolingo English Testを受けてきました

どうも、お久しぶりです。 早くも9月末になり、会社では評価面談の時期で個人的には憂鬱な気分になります。 それはさておき、日々Duolingoアプリを使って勉強したり、スピークバディというアプリを使って話す練習をしたり、英文読解をしたり少しずつではあり…

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.…

Duolingo English Testを受けてみた

会社で英語を使う必要が出てきたり、もっと洋書をスラスラ読みたい、英語圏で働くことも視野に入れられるようにしたいというモチベーションが出てきたので、本腰入れて英語学習をし始めました。 そこでまずは自分の実力はどれぐらいなのかを測定する必要があ…

転職して3ヶ月経った

2022年1月に今いる会社に転職して、もう3ヶ月経った。 今いる部署は技術研究をもとにプロダクトを開発することが多いので、暇なときは暇で忙しいときは忙しいらしい。 が、最初の2週間ぐらいは様子見で細かいタスクを振ってもらったが、それ以降すぐに既存ア…

M1 Mac(arm64)環境でsbt-protocがエラーになる

M1 Mac(arm64)でプロジェクトの環境構築をしているとsbt-protocでエラーが出たので、調べた内容と解決方法を残しておこうと思います。 前提 MacBook Pro(arm64) sbt v1.6.1 sbt-protoc v1.0.2 原因 protobufが 3.17.3 以前のバージョンではM1 Mac向けのbinar…