2

以下のコードには満足できないものがあります。開発するにつれてbGameState、さらにイベントを追加します。playerInputE(そして私は other を想像します) が同じ初期値を共有しているという事実は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
4

1 に答える 1

1

あなたが何をしようとしているのかよくわかりませんが、次のaccumBように定義されているコンビネーターを使用できます

accumB x e = stepper x (accumE x e)

の定義を削除しますplayerInputE

changes関数が正しく使用されているように見えます。

于 2013-04-06T08:59:07.407 に答える