在阅读和实施FRP时,我对事件occs
函数的语义感到困惑(在Conal Elliott的论文中提到)。处理静态(纯)事件时非常简单但我不理解它如何与动态事件(例如鼠标按键等)一起工作。例如,如果occs
返回事件的所有事件,那么据我所知,动态事件occs
的结果可能是以下事项之一(因为并非所有事件都是已知的)还):
当然这两个看起来都有点丑陋 - 一个打破了语义纯度,另一个涉及副作用。
简单地删除FRP框架本身之外的occs
函数会更好吗(即将它作为私有的事件和任何扩展它的东西)?只要Event有map,filter,merge等函数返回更多事件,我觉得它可以毫无困难地丢失。或者,我是否误解了什么?
答案 0 :(得分:2)
据我所知,Conal's paper中提到的occs
功能不属于API。相反,它是编程模型的规范。 Conal使用它来描述各种组合器的语义,但它不是你能够或应该实现的东西。