• 函数组合


    纯函数和柯里化很容易写出洋葱代码,即一层套一层的方法h(g(f(x)))。

    例如前面实现的一个功能:将一个数组的最后一个元素转换成大写字母:_.toUpper(_.first(_.reverse(array))),这种多次嵌套就是洋葱代码,为了解决这种状况,需要使用函数组合。

    函数组合可以让我们把细粒度的函数重新组合生成一个新的函数

    函数组合

    如果一个函数要经过多个函数处理才能得到最终值,这个时候可以把中间过程的函数合并成一个函数

     函数就像是数据的管道,函数组合就是把这些管道连接起来,让数据穿过多个管道形成最终结果,函数组合默认是从右到左执行

     lodash中的组合函数

    lodash中组合函数flow()和flowRight(),它们都可以组合多个函数,flow()是从左到右运行,flowRight()是从右到左运行。

     模拟实现flowRight()

     函数组合条件

    函数的组合要满足结合律:我们可以把g和h组合,也可以把f和g组合,并且结果都是一样的:

    let f = compose(f,g,h);
    compose(compose(f,g),h) == compose(f,compose(g,h))
  • 相关阅读:
    堆排序
    jdk8 永久代变更
    oracle 区分大小写遇到的坑
    日志统计分析
    zookeeper 服务挂掉重启后,dubbo 服务是不会自动重新注册上的
    代码质量管理
    快速排序算法
    python flask 项目结构
    项目架构
    JS中的循环---最全的循环总结
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/14544146.html
Copyright © 2020-2023  润新知