私は、機能がであれば、それを別の機能の中で使うことは可能ですかg :: StateT Int IO()
? f = do { something; g }
でネストすると、Couldn't match type 'Data.Functor.Identity.Identity' with 'IO'
で型チェックできません。StateT IOを状態
答えて
はい、この操作は通常「巻上げ」と呼ばれます。ただ、次の関数を定義して使用します。
hoistState :: Monad m => State s a -> StateT s m a
hoistState = StateT . (return .) . runState
を残念ながら、それはControl.Monad.State
モジュールで定義されていません。
素晴らしいです、ありがとう! – Fraser
[mmorphパッケージのチュートリアル](http://hackage.haskell.org/packages/archive/mmorph/1.0.0/doc/html/Control-Monad-Morph.html#g:4)も参照してください。 –
@GabrielGonzalez 'hoistId ::(Monad m)=> t Identity a - > tma'を持つモナド変換器の型クラスが、基本ライブラリに便利な(Haskell98)追加のように思えます。ファンクタ 'returnのための' MFunctor'の特別なバージョンです。 runIdentity'です。 –
- 1. 状態モナド:別
- 2. コンジットストリーミングモナド状態
- 3. StatETとRmarkdowns
- 4. 奇妙 `freer`型エラー状態とIO効果
- 5. StateTモナドを使用したループ
- 6. セッション状態とアプリケーション状態
- 7. 入れ子状態のStateTとErrorTのモナドをうまく評価する方法は?
- 8. 初期状態/後状態のアニメーション
- 9. 状態値が「未定義」状態onChange
- 10. 休止状態で休止状態
- 11. ...状態、{}とObject.assign({}、状態、{})の相違点
- 12. 状態
- 13. 状態
- 14. 状態
- 15. 状態
- 16. モデリングリアクティブ状態を
- 17. EclipseのStatETとR
- 18. は、UMLの状態図の複合状態シェアのサブ状態同じ状態(?名)
- 19. componentWillReceiveProps状態が還元状態更新後のレンダリング状態と異なる
- 20. 有限状態マシン:複数の状態への1つの状態
- 21. RFCOMM_CreateConnection - 既に開いている状態:2、RFC状態:4、MCB状態:5
- 22. AngularJSで親状態を更新せずに子状態をロード
- 23. 状態パターンC++
- 24. サービスファブリックアクターの状態
- 25. DateTimePickerオンチップ状態
- 26. pthreadスレッド状態
- 27. サービスフォールト状態
- 28. ASP.Netセッション状態
- 29. コンパススプライトホバー状態
- 30. カスタムビューサスペンド状態
'g = do {something; f} '?あなたはg内のfを使用したいのですが、そうですか? – gumik