Elm:了解 foldp 和鼠标点击
Elm: understanding foldp and mouse-clicks
我目前正在学习 Elm。函数式编程相对较新。我试图从 http://elm-lang.org/learn/Using-Signals.elm 中理解这个关于计算鼠标点击次数的例子。他们提供以下代码:
clickCount =
foldp (\click count -> count + 1) 0 Mouse.clicks
他们解释说 foldp 接受三个参数:一个计数器增量器,我们将其定义为一个具有两个输入的匿名函数、一个起始状态 0 和 Mouse.clicks 信号。
我不明白为什么我们需要在匿名函数中使用变量 click。为什么我们不能只使用 \count -> count + 1?额外的输入是否绑定到我们对 foldp 的输入之一?
谢谢!
您需要它,因为 foldp
需要一个具有两个输入的函数。在这种情况下,第一个输入只是被您的 lambda 忽略,但是 foldp
实现仍然在其中放置了一些东西。 Mouse.clicks
总是在其中放置一种名为 Unit
的无用值。
有些信号有一个与之关联的值,例如 Mouse.position
。如果您想执行诸如测量鼠标移动了多远之类的操作,则需要使用该参数。
我目前正在学习 Elm。函数式编程相对较新。我试图从 http://elm-lang.org/learn/Using-Signals.elm 中理解这个关于计算鼠标点击次数的例子。他们提供以下代码:
clickCount =
foldp (\click count -> count + 1) 0 Mouse.clicks
他们解释说 foldp 接受三个参数:一个计数器增量器,我们将其定义为一个具有两个输入的匿名函数、一个起始状态 0 和 Mouse.clicks 信号。
我不明白为什么我们需要在匿名函数中使用变量 click。为什么我们不能只使用 \count -> count + 1?额外的输入是否绑定到我们对 foldp 的输入之一?
谢谢!
您需要它,因为 foldp
需要一个具有两个输入的函数。在这种情况下,第一个输入只是被您的 lambda 忽略,但是 foldp
实现仍然在其中放置了一些东西。 Mouse.clicks
总是在其中放置一种名为 Unit
的无用值。
有些信号有一个与之关联的值,例如 Mouse.position
。如果您想执行诸如测量鼠标移动了多远之类的操作,则需要使用该参数。