私は任意のツリーを持ち、それを整数のツリーに変換したいので、元の値を整数で置き換える必要があります。同じ値は、すべての発生時に同じ数に置き換えなければなりません。 は、ツリーを横断するため 機能が提供され、これは私がラベルを格納するためのスタックを必要とすると信じて、私のラベリング機能 label :: Ord a => a -> State (Store a Int) Int
ですが、私はそ
ハスケルで状態のモナドの結果を印刷することは可能ですか? 私は状態のモナドを理解しようとしています。私は、状態モナドを作成するために以下のコードを提供していますが、私はこのプロセスを視覚的に見ることができないので結果。 newtype State s a = State { runState :: s -> (a,s)}
instance Monad (State s) where
等の場合、私はタイプfoo :: a -> a -> Either String TypeConstructor fooの機能を持っているがthrowError StringとTypeConstructorの何かの両方を返すことができます。 私はfmapのようにしたいと思います。私はcase (foo x y z) of ...にしたいと思うことを意味します。ここで、...は異なる値を意味します(
を使用せずにMAPMを実装します。 Iが生成できるすべては、単にfmapを適用することにより、[m b]ですが、私は継続する方法がわからない: moppy :: [a] -> (a -> m b) -> m [b]
moppy la f = furry' f la -- how do I transform [m b] to m [b] without sequence
誰かが私に見える方向