Scala

ziorprovide
68 views

ZIOへの環境Rのprovide方法各種

ScalaのライブラリZIOにはDIを扱うための仕組みが組み込みで備わっている。 DIの実態をprovideする方法はいくつかあるので紹介する。 なおZIOの基本的な理解は所与とする。 DIを補助する仕組みとしてのZLayerやHasについ...

scala-walmart
92 views

Scalaへの移行 -ウォルマート・カナダへの導入で学んだこと-

Scalaについて皆さんどんなイメージを持っていますか? よく、難しい、変態言語、関数型言語が難しい、といった声を聞きます。 一方でScalaを使う人達はそれを絶賛しますし、別に皆が本当に関数型を理解しているわけではありません。 私もその一...

scala-higher-kinded-type
338 views

ScalaのF[_]と高カインド型(Higher Kinded Type)を完全に理解していく

Scalaはなんとなく書けるようになったけどライブラリコードとか読めないし、関数型はもっとわかない。 特にF[]みたいなやついっぱい出てくるけどなに?みたいな人に捧げる記事です。 このようなものは高カインド型などと呼ばれ、なかなか理解が難し...

scala-singleton-type
77 views

Scalaのシングルトン型(~.type)について

Scalaのソースコードを読んでいたりするとたまに.typeというものが出てきてこれはなんだろうと思ったが、検索方法もよくわからんし何なのかも不明だったので調べてまとめ。 それでこいつは何なのか 名前はシングルトン型(singleton t...

scala-summoner-pattern
18 views

Scala summoner pattern

scalaではimplicitを利用して型クラスのインスタンスを解決するが、summoner patternというものを使えばimplicitを愚直に書くより少し楽になるよというお話。 まずは普通に combineという二項演算のみできる型...

shapeless-convert-with-field
40 views

shapelessでフィールドの順番の違うcase classを自動で変換する

以前の記事でいろんなcase classを下のような感じで自動変換する型クラスを作成した。 しかしこの実装ではcase classのフィールドの順番が同じじゃないと変換できないという制約があった。 今回はこれをもうちょっと曖昧にしてフィール...

cats-effectv3-0-0
57 views

cats-effectv3.0.0がリリースされたらしい

詳しくは https://github.com/typelevel/cats-effect/releases/tag/v3.0.0 IOモナドの刷新 徹底的に再デザインしてパフォーマンス向上 ユーザが使いやすいようなインターフェースの追求...

scalaのauxパターン
101 views

ScalaのAuxパターン

ScalaにはAuxパターンというものがあるらしいのでまとめ。 解決したい課題 ある型に対しての型クラスインスタンスが複数欲しいときがあり、しかもその型クラス同士に依存関係があるとする。 上の例でいくとsomethingメソッドはTのTyp...

scalaのジェネリックライブラリshapelessの基本
34 views

Scalaのジェネリックライブラリshapelessの基本

Scalaにはジェネリックプログラミングとか言うものを行うshapelessというライブラリがある。 その基本。 shapelessがやりたいこと そもそもジェネリックプログラミングとはなんぞやというと、名前の通りジェネリック=総称的なプロ...

ziostreamとfs2streamを相互変換する
19 views

ZStreamとFs2Streamを相互変換する

ZIOを使ってサーバーを立てるときたまにwebsocketを使用したい時がある。 内部的にはZStreamを使用しているので、後はそれをhttp serverにつなぎこむだけなのだが、今の所ZIO×http serverのstableなライ...