榆树:理解foldp和鼠标点击

Ian*_*lor 5 functional-programming elm

我正在学习榆树.函数式编程相对较新.我试图从http://elm-lang.org/learn/Using-Signals.elm了解这个例子来计算鼠标点击次数.他们提供以下代码:

clickCount =
    foldp (\click count -> count + 1) 0 Mouse.clicks 
Run Code Online (Sandbox Code Playgroud)

他们解释说foldp有三个参数:一个反向增量器,我们将其定义为具有两个输入的匿名函数,一个起始状态0和Mouse.clicks信号.

我不明白为什么我们需要在匿名函数中进行变量单击.为什么我们不能只有\ count - > count + 1?额外输入是否与我们输入foldp的输入绑定?

谢谢!

Kar*_*ldt 5

你需要它,因为foldp需要一个带两个输入的函数.在这种情况下,lambda会忽略第一个输入,但foldp实现仍然存在一些内容. Mouse.clicks总是Unit在那里放置一种无所事事的价值.

一些信号具有与它们相关联的值Mouse.position,例如.如果您想要测量鼠标移动的距离,则需要使用该参数.