Programming languages 程序员是否可以使用“OCC”?

Programming languages 程序员是否可以使用“OCC”?,programming-languages,functional-programming,monads,frp,Programming Languages,Functional Programming,Monads,Frp,在阅读和实现FRP时,我对事件上的occs函数的语义感到困惑(在Conal Elliott的论文中提到)。它在处理静态(纯)事件时非常简单,但我不理解它如何处理动态事件(如鼠标按键等)。例如,如果occs返回事件的所有事件,那么就我所能看到的occs动态事件的结果可能是以下内容之一(因为还不知道所有事件): 呼叫时的已知事件 自动与事件本身保持最新的数组/列表 当然,这两个问题看起来都有点难看——一个破坏了语义的纯洁性,另一个涉及到副作用 将occs功能从FRP框架本身之外移除是否更好(即将

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

  • 呼叫时的已知事件
  • 自动与事件本身保持最新的数组/列表
当然,这两个问题看起来都有点难看——一个破坏了语义的纯洁性,另一个涉及到副作用


occs
功能从FRP框架本身之外移除是否更好(即将其私有化为事件和任何扩展它的东西)?只要事件有map、filter、merge等返回更多事件的函数,我觉得它可能会丢失,不会有问题。或者,我误解了什么吗?

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

请不要否决,然后不要解释原因。这真的没用。我原以为会是这样,但我真的想找人核实一下。谢谢海因里希!