2009-07-16 36 views
1

事件與F#中的序列非常相似。你可以用序列表達序列表達式。是否有類似的事件建設者?我找不到它。是否有F#事件的構建器?

如果它不存在,那爲什麼不呢? (它是不可能的還是不合適的?)如果答案是它尚未實現,那麼我會試試看。

+0

你應該澄清了一下標題。 「Builder」是一個非常通用的術語。我認爲你的意思是「自定義工作流程」或「計算表達式構建器」。 – Joh 2012-04-20 10:20:41

回答

2

托馬斯在這裏完成了some research,這似乎確實是一個有成效的途徑。

+0

謝謝,這看起來不錯。我沒有想到在Async構建器中提供功能,這很聰明!也感謝鏈接,Tomas的網站如果充滿了優秀的材料。 您可以定義綁定和返回專門爲事件?我想了一下,但沒有找到滿意的答案。例如`事件{let! a + 2}中的a = eventA將與`map(fun a - > a + 1)eventA`相同。但是,會發生什麼事? a = eventA in let! b = eventB作爲回報a + b}`是什麼意思? 但是我確實發現如果你緩存了最後一個到達的事件,你會得到像Cell或FRP中那樣的時變值。 – Jules 2009-07-19 19:55:43

0

雖然序列是有意義的創建一組對象來處理,事件那將是完全沒有意義的。請認爲事件只是對外部事件提供反應的手段,因此您絕不需要事件構建器。 如果您有一個事件處理程序正在執行一些處理,您可以輕鬆地將邏輯和事件處理分解爲單獨的函數,並將該函數應用於您事先能夠生成的數據,或者根據已知規則和已知的規則順序(您可以使用順序表達式)。

1

也許這會有所幫助:

關於如何創建自定義事件檢查Events in F#。然後你可以創建一個序列和映射,過濾並迭代它們。

相關問題