js 函数式编程(f)

作者: zidea | 来源:发表于2019-01-12 05:39 被阅读28次

我们来举一个简单事例来说明 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()))。

相关文章

  • 函数响应式编程思想 & RxSwift 核心逻辑

    函数响应式编程 = 函数式编程 + 响应式编程 一、函数式 一种编程范式,如y=f(x),y=f(f(x))(高阶...

  • js 函数式编程(f)

    我们来举一个简单事例来说明 reduce 是如何使用的,reduce 第一个参数就是我们接受数组 arrayOfN...

  • 深入浅出Rxjs笔记 一

    一.函数式编程 函数式编程要求: 声明式 纯函数 数据不可变js 不算纯粹意义上的函数式编程语言,但是,在js中函...

  • JavaScript中的函数式编程

    JS 函数式编程指南 什么是函数式编程 简单说,"函数式编程"是一种"编程模型"(programming para...

  • 【JavaScript】技术参考资料

    JS基础、高级、进阶 MDN·JavaScript 函数式编程 阮一峰老师的入门简介: 函数式编程初探、函数式编程...

  • 函数式编程语言Elixir

    函数式编程可能js中用得也不少,至于什么是函数式编程,思想精髓暂时没有。 Elixir : 函数式编程 1、安装环...

  • 翻译连载 |《JavaScript 轻量级函数式编程》- 第 1

    第 1 章:为什么使用函数式编程? 函数式编程人员: 没有任何一个函数式编程者会把变量命名为 x,函数命名为 f,...

  • 《JS函数式编程指南》读书笔记

    JS函数式编程指南 函数是一等公民 函数式编程的目的 函数式编程的目的是使用函数来抽象作用在数据之上的控制流和操作...

  • Node.js学习(8.5)

    Node.js安装配置 指令式编程思维 顺序 选择 循环 函数式编程思维 函数 抽象化函数 JavaScript语...

  • Ramda.js 入门

    1、前言 Ramda.js 是函数式编程领域中类似 lodash、underscore 的存在。在函数式编程流行的...

网友评论

    本文标题:js 函数式编程(f)

    本文链接:https://www.haomeiwen.com/subject/gqnmlqtx.html