楽しみのために書いているマリオのようなゲームのメイン SF のコーディングに行き詰まりました。解析しないコードは次のとおりです。
master_combine = proc pi -> do
-- rec cgg <- player_update >>> (initial_game --> bounds_updater) >>> iPre initial_game -< (pi, cgg)
rec gs <- player_update >>> (initial_game --> bounds_updater) -< (pi, dgs)
dgs <- iPre initial_game -< gs
returnA -< gs
そして、これはOKを解析して実行するコードです:
master_combine = proc pi -> do
rec cgg <- player_update >>> (initial_game --> bounds_updater) >>> iPre initial_game -< (pi, cgg)
-- rec gs <- player_update >>> (initial_game --> bounds_updater) -< (pi, dgs)
-- dgs <- iPre initial_game -< gs
returnA -< cgg
違いをわかりやすくするために、両方のバージョンをコメント付きの同じコード ブロックに保存したことに注意してください。
原則として、変換されたゲームを渡すことができ、機能を切り替える必要がないように、わずかな遅延で負のフィードバック ループを作成したいと考えています。出力は、次のような「描画」SF に送られます。
mainSF = parseInput >>> master_combine >>> draw
最初のバージョンでは、中間名 gs (ゲーム状態) と dgs (遅延ゲーム状態) を使用しようとしました。エラーは、dgs で始まる行で通知されます。
2 番目のバージョンでは、SF 全体を 1 行で書かなければなりませんでした。
負のフィードバック ループを意味する追加の SF を接続して機能を拡張する必要があるため、コードの最初のバージョンを使用したいと思います。
私は rec の矢印 "do" 表記のヘルプを探し続けていますが、適切なコードのインデントを強調する同じ例を常に見つけています。しかし、私はSublimeでインデントし、間隔は私にはうまく見えます. 別の方法はありますか?括弧、中括弧?なんでも?