假设我有一个 monad M
,一个函数*
foo :: forall t. Frameworks t => Int -> M (Behavior t State)
和一个谓词
pred :: State -> Bool
我想得到一个值*(在任何必要的单子中)
bar :: forall t. Frameworks t => Behavior t State
bar
就是这样,foo n
直到信号传达的状态满足pred
,在该点bar
切换到foo (n+1)
,然后重复。n
从任意开始Int
,比如 1。
我在学习 FRP 时玩得很开心,但是这个特殊的问题给我带来了麻烦。
*还要考虑替代的Behavior t
情况Event t