美文网首页
函数式编程

函数式编程

作者: 湘兰沅芷 | 来源:发表于2021-03-13 15:10 被阅读0次

函数式编程是对运算过程进行抽象,数据(函数)之间的映射关系。
最大程度的重用我们的函数
纯函数:相同的输入始终有相同的输出。
函数式一等公民:函数可以存储在变量中、函数可以作为参数、函数可以作为返回值。
高阶函数:
1.可以把函数作为参数传递给另一个函数。
2.可以把函数作为另一个函数的返回结果。
函数作为参数例子:

function forEach(arr, fn) {
    for (let value of arr) {
        fn(value)
    }
}
let arr = [1, 2, 3]
forEach(arr, val => console.log(val))
function filter(arr, fn) {
    let result = []
    for (let value of arr) {
        if(fn(value)) {
            result.push(value)
        }
    }
    return result
}
let arr = [1, 2, 3]
console.log(filter(arr, val => val > 2))
const map = function (arr, fn) {
    let result = []
    for(let value in arr) {
        result.push(fn(value))
    }
    return result
}
let arr = [1, 2, 3]
console.log(map(arr, val => val * val))
const every = function(arr, fn) {
    let result = true
    for (let value in arr) {
        result = fn(value)
        if (!result) {
            break
        }
    }
    return result
}
let arr = [1, 2, 3]
every(arr, v => v > 1)
const some = function(arr, fn) {
    let result = false
    for (let value in arr) {
        result = fn(value)
        if (result) {
            break
        }
    }
    return result
}
let arr = [1, 2, 3]
some(arr, v => v > 1)

函数作为返回值例子:

const makeFn = function() {
    const msg = 'hello'
    return function() {
        console.log(msg)
    }
}
makeFn()()
const once = function(fn) {
    let done = false;
    return function() {
        if (!done) {
            done = true;
            return fn.apply(this, arguments)
        }
    }
}
let pay = once(function(money) {
    console.log(money)
})
pay('yiyuan')
pay('2')

使用高阶函数的意义:
抽象可以帮助我们屏蔽细节,只需要关注我们的目标
高阶函数式用来抽象通用的问题

常用的高阶函数:
forEach、map、filter、every、some、find/findIndex、reduce、sort

相关文章

  • RxSwift初探(1)

    一、前提:函数响应式编程思想 简单来说 函数响应式编程 = 函数式编程 + 响应式编程 (1)函数式 函数式编程是...

  • iOS 函数编程 & 链式编程

    函数式(链式)编程 函数式编程概念 函数式编程是种编程范式 函数式编程 Functional Programmin...

  • 函数式编程(一)—— 前置知识

    为什么要学函数式编程? 什么是函数式编程?函数式编程和面向对象编程的不同对于函数式编程思维方式的理解: 函数式编程...

  • 二十二、函数式编程、面向协议式编程

    函数式编程(Functional Prigramming) 函数式编程 函数式编程(Functional Prig...

  • Python中的函数式编程

    函数式编程 说到函数式编程,我们的重点在于为什么要采用函数式编程,而不是什么是函数式编程。 函数式编程的优点:一、...

  • RxSwift-初探

    函数响应式编程 一:函数式 函数式编程简称FP(Functional Programming),函数式编程就是一种...

  • 《Kotlin入门实战》CH5 | 函数与函数式编程

    函数与函数式编程 函数式编程与命令式编程最大的不同是:函数式编程的焦点在于数据的映射,命令式编程(imperati...

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

    函数响应式编程思想 函数响应式编程思想即是将函数式编程和响应式编程相结合。 函数式编程 顾名思义,就是像函数一样的...

  • RxJava系列|RxJava简介(一)

    函数响应式编程 函数式编程是一种编程范式。 常见的编程范式有:命令式编程、函数式编程和逻辑式编程。 面向对象就是一...

  • 了解C# 函数式编程

    什么是函数式编程 函数式编程是一种编程范式,维基百科对函数式编程定义如下: 函数式编程(英语:functional...

网友评论

      本文标题:函数式编程

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