2013-04-05 31 views
2

有些東西我覺得下面的代碼並不令人滿意。當我開發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

我不太明白你正在嘗試做的,但你可以用它定義爲

accumB x e = stepper x (accumE x e) 

刪除的playerInputE的定義accumB組合子。

在我看來,changes函數使用正確。

相關問題