缓存记忆函数

Posted 程序员超时空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓存记忆函数相关的知识,希望对你有一定的参考价值。

  • 使用纯函数[pure function]来实现缓存

  • 纯函数

    • 相同的输入永远会得到相同的输出, 而且没有任何可观察的副作用
  • loadsh 是一个纯函数的功能库,提供对数组、数字、对象、函数等操作的一些方法

  • 数组 slicesplice 分别是:纯函数和不纯的函数

    • slice 返回数组中的指定部分, 不会改变原数组
    • splice 对数组进行操作返回该数组,会改变该数组

    const numbers = [1, 2, 3, 4, 5]
    // 纯函数
    console.log(numbers.slice(0, 3)) // [ 1, 2, 3 ]
    console.log(numbers.slice(0, 3)) // [ 1, 2, 3 ]
    console.log(numbers.slice(0, 3)) // [ 1, 2, 3 ]

    // 不纯的函数
    console.log(numbers.splice(0, 3)) // [ 1, 2, 3 ]
    console.log(numbers.splice(0, 3)) // [ 4, 5 ]
    console.log(numbers.splice(0, 3)) // []

  • 因为纯函数对相同的输入始终有相同的结果,所以可以把纯函数的结果缓存起来

    // 使用 lodash
    // npm i lodash
    const _ = require(‘lodash’)

    function getArea®

以上是关于缓存记忆函数的主要内容,如果未能解决你的问题,请参考以下文章

在Python函数中使用Tuple作为缓存键进行手工记忆。

缓存和记忆有啥区别?

选择性缓存/记忆的装饰器

《JS权威指南学习总结--8.8.4 记忆函数》

Django按要求记忆

R中的缓存/记忆/散列选项