2

在阅读和实现 FRP 时,我occs对 Event 函数的语义感到困惑(在 Conal Elliott 的论文中提到)。处理静态(纯)事件时非常简单,但我不明白它如何处理动态事件(例如鼠标按钮按下等)。例如,如果occs返回事件的所有事件,那么据我所知,occs动态事件的结果可能是以下情况之一(因为并非所有事件都是已知的):

  • 通话时的已知事件
  • 自动与事件本身保持同步的数组/列表

当然,这两个看起来都有些难看——一个破坏了语义纯度,另一个涉及副作用。

简单地删除 FRP 框架本身之外的函数会更好吗occs(即,使其对 Event 和任何扩展它的东西都是私有的)?只要事件具有返回更多事件的映射、过滤、合并等功能,我觉得它可以毫无问题地丢失。或者,我是不是误会了什么?

4

1 回答 1

2

据我了解, Conal 论文occs中提到的函数不是 API 的一部分。相反,它是编程模型的规范。Conal 使用它来描述各种组合器的语义,但它不是您可以或应该实现的东西。

于 2012-02-16T07:36:12.903 回答