假设我有
x :: Event t (A,B)
我可以得到它的第一个组件:
fst <$> x :: Event t A
但是,即使第一个组件没有更改,此事件也会触发。我想避免这种情况,因为它会引发昂贵的重新计算。
A
是 的一个实例Eq
,因此我希望能够删除第一个组件与其最后一个值相比未更改的连续事件。
理想情况下,我想要一个功能
filterDups :: Eq a => Event t a -> Event t a
这将在不诉诸Moment
单子的情况下做到这一点。可能吗?或者最好的方法是什么?