相关疑难解决方法(0)

reactive-banana:包含行为最新值的触发事件

假设我有一个事件触发器,我想在触发时做两件事.首先,我希望它更新某些行为的价值.其次,如果满足其他条件,我希望它使用更新的行为值触发另一个事件send_off.以代码形式表示,假设我有

trigger :: Event b
trigger = ...

updateFromTrigger :: b -> (a -> a)
updateFromTrigger = ...

conditionFromTrigger :: b -> Bool
conditionFromTrigger = ...

behavior :: Behavior a
behavior = accumB initial_value (updateFromTrigger <$> trigger)

send_off :: Event a
send_off = ?????? (filterE conditionFromTrigger trigger)
Run Code Online (Sandbox Code Playgroud)

然后问题是:我把什么放在?????? 以便send_off发送最新的行为值,我的意思是包含刚刚应用于它的触发器更新的值.

不幸的是,如果我理解正确,行为的语义是这样的,更新的值不会立即可用,所以我这里唯一的选择是复制工作并重新计算行为的更新值,以便我可以立即使用它在另一个事件中,即填写?????? 喜欢的东西

send_off =
    flip updateFromTrigger
    <$>
    behavior
    <@>
    filterE conditionFromTrigger trigger
Run Code Online (Sandbox Code Playgroud)

现在,有一种感觉我可以通过使用Discrete而不是Behavior来立即使我 …

haskell frp reactive-programming reactive-banana

16
推荐指数
1
解决办法
363
查看次数