haskell - Helm 中的示例是什么?

标签 haskell frp elm

Haskell FRP 库 Helm 中似乎没有太多关于 Sample a 的文档。我正在尝试编写一个类似于 sample on 的函数在 Elm 中,我认为 update 可以提供帮助。但是我对 update 的工作原理感到困惑,因为从源代码 here ,看来变量p根本没有被使用。

这个函数应该做什么?如果不使用输入p,为什么要包含它?有一个更好的方法吗?我认为 seq 可以工作,但我尝试使用 seq 实现我的动画,但它没有做我正在寻找的事情。

最佳答案

第一个参数的存在可能是出于历史原因或与 helm 提供的其他功能的一致性;但我对这两者都了解不够,无法确定。

update 函数的预期用途似乎是在其参数周围包装适当的构造函数:update p a s 将导致 Changed aUnchanged a 取决于 a 是否与存储在 s 中的值匹配。例如,人们可以使用它作为 foldp 的参数:

foldp (update undefined) :: Eq a => Sample a -> Signal a -> Signal (Sample a)

下游信号可以轻松忽略未更改值。

关于haskell - Helm 中的示例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30561548/

相关文章:

frp - 我的 Throttable EventStream 实现 - 是否多余?

elm - Elm 0.19 Elm.MODULENAME.embed不是函数

Haskell,局部定义和变量,混淆 :/

haskell - 类似 curl 的单子(monad)变压器?

typeclass - 如何将 Maybe-Transformer MaybeT 变成 MonadWriter 的实例?

haskell - 如何在reactive-banana中使行为包含其他行为

haskell - 绑定(bind)变量时Haskell中的无限循环

haskell - 可重置累加器行为?

javascript - JavaScript 中的函数式响应式(Reactive)编程是否会导致更大的监听器引用问题?

functional-programming - 如何在 elm 中将列表分成四个列表?