程序员可以使用“occs”吗?

时间:2012-02-14 16:19:18

标签: programming-languages functional-programming monads frp

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

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

当然这两个看起来都有点丑陋 - 一个打破了语义纯度,另一个涉及副作用。

简单地删除FRP框架本身之外的occs函数会更好吗(即将它作为私有的事件和任何扩展它的东西)?只要Event有map,filter,merge等函数返回更多事件,我觉得它可以毫无困难地丢失。或者,我是否误解了什么?

1 个答案:

答案 0 :(得分:2)

据我所知,Conal's paper中提到的occs功能不属于API。相反,它是编程模型的规范。 Conal使用它来描述各种组合器的语义,但它不是你能够或应该实现的东西。