js 函数式编程(f)
我们来举一个简单事例来说明 reduce 是如何使用的,reduce 第一个参数就是我们接受数组 arrayOfNums ,第二个参数是一个函数,这个函数接受两个参数,memo 是用于记忆每一次操作后结果,i 为数组每一个元素,我们通过可以将 i 加入 memo 来事先求和,最后一个参数为 reduce 的初始值 0。
我们做肉汁 cookGravy 方法,可以先设定好烹饪的温度和时间参数,而后在调用 cookInPot 方法来根据设定进行烹饪肉汁。
这时我们可以用到 partial 这个偏函数,我们定义偏函数,偏函数是返回一个函数,将事前准备好的参数传递给返回函数。
先看一个简单偏函数, sum 是取和函数接受两个参数 a 和 b,假如我们函数是对输入加 2 呢,我们可以改造一下
如何恰当解释让您理解什么是偏函数,偏函数目的在于减少我们函数的参数,例如函数 funa 需要三个参数(a,b,c),我们可以用一个函数 funcurry 接受 a,b 两个参数而后返回函数接受参数 c。这样我们即可以减少 funa 的参数个数。从而我们处理了 cookStew 嵌套 cookInPot 这个函数,取而代之用 cookStewCurry 接受 _.partial 返回的函数,
我们同样创立其余的偏函数。
在 cookInPot 方法中,我们先执行 addIngredientsToPot 我们先将准备材料放置容器中进行烹调。这两个步骤是有肯定先后顺序,请求前一个函数的执行结果作为后一个函数的参数被后一个函数所使用。
上面我们学习了偏函数,而后来学习 compose 将多个函数组合来使用,使用的方式先执行最右侧的函数执行结果作为左侧
在 underscore 的 compose 可以返回函数集 functions 组合后的复合函数, 也就是一个函数执行完之后把返回的结果再作为参数赋给下一个函数来执行. 以此类推. 在数学里, 把函数 f(), g(), 和 h() 组合起来可以得到复合函数 f(g(h()))。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » js 函数式编程(f)