実装一覧
| 名前 | Star | Functor | Pure | Apply | Applicative | FlatMap | Monad | Empty | Semigroup | Monoid | Foldable | コメント |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| JasonShin/fp-core.rs | 461 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
| kitfre/Kinder | 107 | ○ | - | - | ○ | - | ○ | - | - | ○ | ○ | |
| 14427/hkt.rs | 72 | ○ | - | - | ○ | - | ○ | - | - | ○ | - | |
| algermissen/rustz | 49 | - | - | - | - | - | - | - | - | ○ | - | Reader,State,Validation,Lenseあり |
| clintonmead/haskell_bits | 44 | ○ | - | - | ○ | - | ○ | - | - | ○ | - | Haskellのdo構文のようなコンピュテーション式のようなサポートあり |
| aoprisan/func | 12 | ○ | - | - | ○ | - | ○ | - | - | ○ | ○ | HList, Free, Lazy, Trampolineなどもあるようだ |
| daviswahl/rats | 9 | ○ | - | - | ○ | - | ○ | - | - | ○ | ○ | Trampoline, Traverseあり |
| DarinM223/hkt.rs | 0 | ○ | - | - | ○ | - | ○ | - | - | ○ | - |
参考になる資料
- Rustでもモナドは実装できるのか?
- Rustで(Either)モナドを作る
-
Functional Programming Jargon in Rust
- JasonShin/fp-core.rs のブログ記事です
所感
- 高カインド型がないのでtraitの型メンバを使う方式=HKT方式?で実装されているようだ
- 利用者が多いのはJasonShin/fp-core.rs。自分で実装するなら14427/hkt.rsを読むと良さそう