Reactive-banana有一个名为stepper的函数(MonadMoment类型m => a – >事件a – > m(行为a)),它将事件转换为行为值为最后一个事件值的行为,如果尚未发生任何事件,则为初始值.
在Conal Elliott的谈话中,我不记得这个名字,他将此视为事件和行为的基本操作之一.但是,我在netwire中找不到类似的功能.由于我对netwire的理解有限,我希望它有类型:
a – >电线(事件a)a
> netwire有相同的功能吗?
>如果没有,是否有任何理由不能这样做?
>是否有类似的可能,即将事件转换为行为的方式?
最佳答案 我正在寻找的功能称为
hold
, in Control.Wire.Interval
.
这不需要初始值,因为线路会在收到第一个事件之前禁止.如果需要这种行为,可以像这样实现
stepper init = hold <|> pure init