加入嵌套的 Monad
Joining Nested Monads
我正在使用 FRP.Sodium
并且我有一个 IO (Behavior (IO (Behavior)))
类型的对象。我需要将该对象转换为 IO (Behavior)
类型,使用类似于嵌套 join
的东西。这可能使用钠函数吗? a (b (a (b c))) -> a (b c))
是否有更通用的解决方案?
没有明显的方法可以做到这一点。您可以使用像 sample
and sync
or updates
and executeSyncIO/executeAsyncIO
这样的函数拼凑出正确类型的东西,但它可能不遵守 Monad
法则。
a (b (a (b c))) -> a (b c))
没有更通用的解决方案,但是如果 b
是 Traversable
, which lets you rearrange things into a (a (b (b c)))
by traversing 则外部 b
。
我正在使用 FRP.Sodium
并且我有一个 IO (Behavior (IO (Behavior)))
类型的对象。我需要将该对象转换为 IO (Behavior)
类型,使用类似于嵌套 join
的东西。这可能使用钠函数吗? a (b (a (b c))) -> a (b c))
是否有更通用的解决方案?
没有明显的方法可以做到这一点。您可以使用像 sample
and sync
or updates
and executeSyncIO/executeAsyncIO
这样的函数拼凑出正确类型的东西,但它可能不遵守 Monad
法则。
a (b (a (b c))) -> a (b c))
没有更通用的解决方案,但是如果 b
是 Traversable
, which lets you rearrange things into a (a (b (b c)))
by traversing 则外部 b
。