在Haskell的反应香蕉中,反应网络的flatMap相当于什么?

mig*_*rao 3 haskell frp reactive-programming reactive-banana

我正在寻找在reactive-banana中的函数,它将根据另一个事件流或信号的传入值(行为?)选择接下来要发出的事件流.在scala库中,响应式网络可以通过以下方式完成:

 flatMap[U](f: T => EventStream[U]): EventStream[U] 
Run Code Online (Sandbox Code Playgroud)

谢谢 !

ehi*_*ird 6

这是动态事件切换.不幸的是,在该配方中,它存在许多问题,因此不包括在反应性香蕉中.但是,很快就会添加动态事件切换的变体.现在,你将不得不这样做.

特别是,flatMapScala是monadic绑定函数的名称; Monad行为的实例是有问题的,因为它提供了动态事件切换功能,导致我链接的文章中解释的时间泄漏.

  • 好吧,没有什么遗漏,因此; 它被故意省略,因为它会导致时间泄漏并且在语义上存在问题; 它在某种意义上具有"错误的类型"(在我链接的第二篇文章中给出了正确的类型). (2认同)