为了好玩和学习,我正在尝试使用功能性反应式编程在我的应用程序中实现撤消系统.我有一个状态更改流,需要保存到撤消堆栈中.当用户单击undo时,我从堆栈中获取一个值并相应地更新应用程序状态.
问题是此更新本身也会在状态更改流中生成一个事件.所以我想要的是从状态变化中导出另一个流,它在撤消后立即省略状态变化.
一个简单的图表:
states ----S----S----S----
undos -------U-----------
save ----S---------S----
Run Code Online (Sandbox Code Playgroud)
第一行是应用程序状态更改流,第二行是用户触发的撤消事件,第三行是我想要实现和监听而不是第一个流的流.
在FRP中表达此类意图的最佳方式是什么?