6
モナドのアクションが与えられているので、モナドのアクション内に書き込まれたデータに関数をマッピングすることで、モディファイドのアクションを変更したいと思います。以下のようなWriterのモナドで書き込まれたデータを変更する
何か:
retell :: (w -> w') -> Writer w a -> Writer w' a
は、このような機能は、既にライブラリに存在していますか?そうでない場合、どのように定義できますか?
あなたがこれを行うことができます:
second
機能がControl.Arrow
であるが、あなたはこのようなことを自分の少ない一般的なバージョンを定義することができます。だから、これを行うことができますMonadWriterクラスのメソッド?そうでなければ、私はWriterの独自のサブクラスを作っていました - 'Rewriter'は' retell'オペレーションを提供します。 –@stephentetley - 自分自身を修正します。あなたが 'pass 'でこれを行うことはできません。私は 'retell'で' Writer'を拡張する 'Rewriter'サブクラスに行きます。 –