実装一覧
名前 | 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を読むと良さそう