2009-07-16 32 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#。然后你可以创建一个序列和映射,过滤并迭代它们。