こんにちは,エムスリーエンジニアリングGの榎田(@niflh)です.趣味は数学とテレビゲームです. 以前の記事 で Scala を通して関数型を勉強した話をしましたが,最近社内で Scala with Catsを読む勉強会をしています.この本は,Cats という「Scala で関数型プログラミングをサポートするライブラリ」を勉強しつつ,関数型特有の概念に慣れ親しむことを目的としたものです. この勉強会も,参加者の皆さんと二人三脚で進み,モナドを扱う章に入りました.そんな中,参加者の一人から,次のような意見が出ました. モナドをやるとよく圏論が出てくるので,かじってみると面白い一方,よくわからないことも多い.プログラミング上のどの操作が圏論とかのどの操作に紐付いてて,何が嬉しいのか,あたりがまとまってると嬉しい. 尤もだと思ったので,色々調べて考えた結果が本稿です.一記事には長すぎるようにも