fp

fp-ts-option
411 views

fp-tsとoption

fp-tsには値が存在するかどうかをデータ型として表現したOptionというものが存在する。 その紹介。 https://gcanti.github.io/fp-ts/modules/Option.ts.html コード例について コード例...

typescript-higher-kinded-type
868 views

TypeScriptとHigher Kinded Type(高階型)

関数型はデータ型というものを非常に重視する。 データ型によって値をモデリングし、どういった性質のデータなのかを表現する。 更に型システムと組み合わせることでデータ型はさらなる力を得る。 型システムによってデータ型を抽象化するときに利用する型...

fp-ts-monoid
92 views

fp-tsとMonoid

単位元付きの二項演算を司る型クラスMonoidを紹介。 https://gcanti.github.io/fp-ts/modules/Monoid.ts.html 定義 定義を見ると分かる通り、すべてのMonoidはSemigroupである...

fp-ts-ord
73 views

fp-tsとOrd

順番を司る型クラスOrdの紹介。 https://gcanti.github.io/fp-ts/modules/Ord.ts.html 定義 compareという比較用の関数が一つだけ生えている。 compareが返すOrderingは比較...

fp-ts-eq
73 views

fp-tsとEq

値の等値性を司る型クラスEqの紹介。 https://gcanti.github.io/fp-ts/modules/Eq.ts.html 定義 equalsという等値判断関数がいるだけ。 law Eqが満たすべきlawは3つある。 反射律:...

fp-ts-semigroup
116 views

fp-tsとSemigroup

TypeScriptの関数型ライブラリのfp-tsには型クラスとしてSemigroupがいる。 その紹介。 https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html Semigroup...

typescript-typeclass
1,088 views

TypeScriptと型クラス

HaskellやScalaなどの関数型言語の特徴として型クラスというものがある。 これは関数型における強力な道具の一つであり、そして何もHaskellやScalaなどの特権機構ではない。 サポートの大小はあれど他の言語でも実現できる。 そし...

adb-scala
420 views

代数的データ型Deep Dive in Scala

関数型やってるとよく聞く代数的データ型(ADT)について。 Scalaやってるとよく使うがHaskellほどこの話題について掘った記事はあんまりないのでdigっていきたい。 そもそも代数的データ型とは 具体例 こういうやつ。 なぜ代数的デー...

zio-history
213 views

ZIO小史

この記事はA Brief History of ZIOを執筆者のJohn A De Goesさんの許可を取って翻訳したものです。 Thanks a lot to John A De Goes for the great article an...

scala-higher-kinded-type
338 views

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

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

monkey_curry
4,553 views

サルでもわかるカリー化とそのメリット

アロー関数は前提知識。 カリー化を一言 関数を返す関数によってプログラムの共通化を図り、堅牢で安全なプログラムを作る。 カリー化の理論的な説明 複数変数を取る関数がある その関数を1変数を取り、関数を返す関数に分解する or wikiped...

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がやりたいこと そもそもジェネリックプログラミングとはなんぞやというと、名前の通りジェネリック=総称的なプロ...