答えて
はしかし、これはMonadState
努力を複製巻き上げるようなもののためのインスタンスを実装しなければならなかった誰を意味しました。
transformers
で
(今消滅monads-fd
とmonads-tf
)ロスパターソンは後者のみを提供し、ベースモナドとしてIdentity
を使用する簡単な方法を使用することを決めました。
これにより、mtl
を維持するための実装の労力が軽減され、State
モナドを実装する2つの異なる方法があるという事実が削除されました。しかし、mtl
の内部を教えるのが難しくなりました。なぜなら、ゲートのすぐ外にあるtransformers
バージョンを理解する必要があり、単純化されたバージョンをトレーニングホイールとして使用しないからです。
旧mtl
が廃止され、monads-fd
がmtl
2.0になったとき、既存のtransformers
を使用してこの設計決定を引き継いだ。
私は個人的には、少なくとも教育的目的のための別個の単純なモナドを好きでしたが、議論の反対側にははるかに多くの人がいました。
私は教育目的について全く同意します。元のよりシンプルなバージョンを含む 'monads-teach'パッケージをセットアップするべきでしょう。 –
ドキュメントから:計算上、単純に引数に関数を適用するのではなく、アイデンティティモナドを使用する理由はありません。アイデンティティモナドの目的は、モナド変圧器の理論における基本的な役割です。アイデンティティモナドに適用されたモナド変換器は、そのモナドの非変換バージョンを生成します。
私が理解しているように、モナド変圧器からのモナドの非変圧器バージョンを識別モナドを適用することによって得ることは、アイデンティティモナドが存在することとまったく同じです。非変圧器モナドを使用するだけでは利点はありませんが、モナド変圧器を使用する必要があることもあります。あなたが使用したい機能がそれを必要とするとき。我々は
newtype State s a = State { runState :: s -> (a, s) }
と
newtype StateT s m a = StateT { runStateT :: s -> m (a, s) }
の両方を持っていた
戻るmtl
1.0で
- 1. いくつかのモナド変圧器スタックを検討モナド変換
- 2. モナド変圧器モナドの複製
- 3. モナド変圧器の例外をキャッチ
- 4. 2つのモナド変圧器の違いは何ですか?
- 5. なぜボイラープレート新しいモナド変圧器を書き
- 6. 変圧器としてのモナド組成の抽象化
- 7. モナド内部モナド変換器の結果
- 8. モナドをきれいにする - モナド変圧器を新しいタイプのモナドに応用すること
- 9. 通常のモナディック関数をモナド変圧器と同等にする
- 10. Pyspark:変圧器を保存
- 11. ErrorTモナド変換器の理解
- 12. なぜData.Binary.Putモナドを変圧器に変更するとメモリリークが発生するのですか?
- 13. モナド変圧器はサービスからJSONを取得するために適用されますか?
- 14. は、たぶん私は、次のコードを持っている変圧器
- 15. バイナリデータを持つナイーブベイズ分類器
- 16. IdentityT変圧器の目的は何ですか?
- 17. デザインヘルプ!列挙型の工場変圧器のJavaジェネリックス!
- 18. ユニットファンクタ/モナドを持つHaskellパッケージは何ですか?
- 19. 任意のモナドに通訳を持つ操作モナ
- 20. JUNG2 - どのようにカスタムegdeの色/厚い変圧器を設定する
- 21. 2つのモナド変圧器が異なるタイプのものであっても、それらの基礎となるモナドが同じタイプのものであれば、原理的な方法がありますか?
- 22. 私は失敗し、いくつかのログをして、計算のためのモナドを持っている唯一のモナド変換
- 23. 複数のモナドを持つfor式をscalaでどのように変換しますか?
- 24. IOモナド内のモナドを使用する
- 25. 大きな画像を持つPDFで圧縮する
- 26. jqueryポストを持つasp.netのGzip圧縮設定
- 27. 複数のクラスのエイリアスを持つJSONからObjectへの変換器はありますか?
- 28. iOSリーク計測器の保持カウント
- 29. カテゴリ変数を持つbiglm
- 30. ハスケル:モナドのテイク?
「標準」バージョンとはどういう意味ですか? – Adrian
「トランスの標準バージョン」とはどういう意味ですか?通常、アイデンティティモナドに適用されるトランスの標準バージョンです。 – leftaroundabout
私は 'StateT s Identity a'と' State s a'を意味します。どちらも機能的には同じですか? –