事件和行为是否存在具有相同初始值的问题?

时间:2013-04-05 04:00:35

标签: haskell frp reactive-banana

我发现以下代码不满意。在我开发bGameState时,我会添加更多活动。 playerInputE(我想其他Events)共享相同的初始值会导致问题吗?换句话说,我的初始设计是否足以建立起来?

此外,是否有使用changes的替代方法?我认为我符合正确使用的标准,但我不确定。

makeNetworkDescription :: AddHandler PlayerCommand ->
                           TChan GameState ->
                           IO EventNetwork
makeNetworkDescription addCommandEvent gsChannel = compile $ do
  eInput <- fromAddHandler addCommandEvent
  let playerInputE = accumE initialGS $ updateGS <$> eInput
      bGameState = stepper initialGS playerInputE
      eGameState <- changes bGameState
      reactimate $ (\n -> (atomically $ writeTChan gsChannel n)) <$> eGameState

1 个答案:

答案 0 :(得分:1)

我不太明白你要做什么,但你可以使用定义为

accumB组合子
accumB x e = stepper x (accumE x e)

删除playerInputE

的定义

在我看来,changes功能使用正确。