Reactive-Banana中溢出功能的事件处理顺序是什么?

时间:2012-04-10 01:16:46

标签: haskell frp reactive-banana

我对此进行了测试,似乎事件处理的顺序与源事件中列表的顺序相同。我不认为我可以依赖这个,因为文档只说明:

  

发出同时发生的事件。严格要求,我们有泄漏。 collect = id

如何使用以下规范创建类似于溢出的函数:

  

发出顺序事件发生,并保证在第一个和最后一个

之间不会触发其他事件

或者我应该尝试不同的方法?我正在尝试在Reactive-Banana中实现宏功能

1 个答案:

答案 0 :(得分:3)

(我是反应香蕉的作者。)

  

事件处理的顺序似乎与源事件中列表的顺序相同。

这是正确的,你可以依靠它。事实上,它或多或少都来自等式spill . collect = id。毕竟,要生成标识映射,spill必须保留事件的顺序,因为collect已将它们放入列表中。

此外,您可以检查模块Reactive.Banana.Model(版本0.5中的Reactive.Banana.Internal.Model)和Reactive.Banana.Combinators的源代码。总之,它们提供了权威的模型实现。您可以直接检查spill的行为方式。 (虽然它可能有点混乱,因为模型分为两部分。)

尽管如此,我还是会在文档中添加几句话。