zoukankan      html  css  js  c++  java
  • 函数式编程

    什么是函数式编程

     函数式编程是声明式编程的范式。在函数式编程中数据在由纯函数组成的管道中传递。

    > 函数式编程可以用简单如交换律、结合律、分配律的数学之法来帮我们简化代码的实现。
    它具有如下一些特性:

    • 纯粹性: 纯函数不改变除当前作用域以外的值;
    // 反面示例
    let a = 0
    const add = (b) => a = a + b // 两次 add(1) 结果不一致
    // 正确示例
    const add = (a, b) => a + b
    • 数据不可变性: Immutable
    // 反面示例
    const arr = [1, 2]
    const arrAdd = (value) => {
      arr.push(value)
      return arr
    }
    arrAdd(3) // [1, 2, 3]
    arrAdd(3) // [1, 2, 3, 3]
    // 正面示例
    const arr = [1, 2]
    const arrAdd = (value) => {
      return arr.concat(value)
    }
    arrAdd(3) // [1, 2, 3]
    arrAdd(3) // [1, 2, 3]
    > 在后记 1 中对数组字符串方法是否对原值有影响作了整理
    • 函数柯里化: 将多个入参的函数转化为一个入参的函数;
    const add = a => b => c => a + b + c
    add(1)(2)(3)
    • 偏函数: 将多个入参的函数转化成两部分;
    const add = a => (b, c) => a + b + c
    add(1)(2, 3)
    • 可组合: 函数之间能组合使用
    const add = (x) => x + x
    const mult = (x) => x * x
    const addAndMult = (x) => add(mult(x))

    转载自前端九部:https://www.yuque.com/fe9/basic/pq4mzx

  • 相关阅读:
    day1记一次无列名注入
    无参数RCE
    ThinkPHP 5.x远程命令执行漏洞
    phpmyadmin4.8.1文件包含漏洞
    foreach循环导致变量覆盖
    绕过空格的报错注入
    布尔盲注payload补充
    php后台验证两种方式绕过
    CentOS yum 配置阿里镜像
    CentOS通过yum安装配置Java环境
  • 原文地址:https://www.cnblogs.com/suihang/p/10522755.html
Copyright © 2011-2022 走看看