所以,我想建立一個自定義計算表達式,讓我把這個 -如何將前向管道表達式轉換爲計算表達式?
testWorld |>
subscribe ClickTestButtonAddress [] addBoxes |>
addScreen testScreen TestScreenAddress |>
setP (Some TestScreenAddress) World.optActiveScreenAddress |>
addGroup testGroup TestGroupAddress |>
addEntityGuiLabel (testLabelGuiEntity, testLabelGui, testLabel) TestLabelAddress |>
addEntityGuiButton (testButtonGuiEntity, testButtonGui, testButton) TestButtonAddress |>
addEntityActorBlock (testFloorActorEntity, testFloorActor, testFloor) TestFloorAddress |>
(let hintRenderingPackageUse = HintRenderingPackageUse { FileName = "AssetGraph.xml"; PackageName = "Misc"; HRPU =() }
fun world -> { world with RenderMessages = hintRenderingPackageUse :: world.RenderMessages }) |>
(let hintAudioPackageUse = HintAudioPackageUse { FileName = "AssetGraph.xml"; PackageName = "Misc"; HAPU =() }
fun world -> { world with AudioMessages = hintAudioPackageUse :: world.AudioMessages })
弄成這個樣子 -
fwd {
do! subscribe ClickTestButtonAddress [] addBoxes
do! addScreen testScreen TestScreenAddress
do! setP (Some TestScreenAddress) World.optActiveScreenAddress
do! addGroup testGroup TestGroupAddress
do! addEntityGuiLabel (testLabelGuiEntity, testLabelGui, testLabel) TestLabelAddress
do! addEntityGuiButton (testButtonGuiEntity, testButtonGui, testButton) TestButtonAddress
do! addEntityActorBlock (testFloorActorEntity, testFloorActor, testFloor) TestFloorAddress
let hintRenderingPackageUse = HintRenderingPackageUse { FileName = "AssetGraph.xml"; PackageName = "Misc"; HRPU =() }
do! fun world -> { world with RenderMessages = hintRenderingPackageUse :: world.RenderMessages }
let hintAudioPackageUse = HintAudioPackageUse { FileName = "AssetGraph.xml"; PackageName = "Misc"; HAPU =() }
do! fun world -> { world with AudioMessages = hintAudioPackageUse :: world.AudioMessages }}
<| runFwd testWorld
這是可能的,或接近的東西可能嗎?如果是這樣,可以採取什麼方法?這是一個monad,還是更小的東西?
只是想知道,使用計算表達式有什麼好處? (流水線符號對我來說看起來很好......) –
最簡單的方法就是在每個單獨的操作上設置斷點。這條管道實際上是不可爆炸的,AFAICT。真相被告知,我的偏好是讓VS能夠在管道內放置斷點,但我沒有看到發生這種情況。除此之外,我想要添加一些自定義的CE運營商。我最終試圖在World類型的層次上構建一個'腳本'計算表達式事物。 –
當然,我的評論假設有一些方法可以讓當前世界脫離調試器... Tho也許不會有:(......也許我應該回到正常的基於let的代碼? –