美文网首页
构造带记忆功能的函数

构造带记忆功能的函数

作者: 卡卡卡卡颂 | 来源:发表于2017-04-02 21:10 被阅读0次

构造一个带有之前结果缓存的函数,减少不必要的计算


    /*
    传入 初始缓存记忆的数组memo 和计算公式formula
    返回 一个管理memo存储和在需要时调用formula的函数recur
    */
    var memoizer = function(memo,formula) {
      var recur=function(n) {
        var result=memo[n];
        if (typeof result !=='function') {
            result=formula(recur,n);
            memo[n]=result;
        }
        return result;
      };
      return recur;
    }

用我们的memoizer函数定义fibonacci函数

var fibonacci=memoizer([0,1],function(recur,n) {
  return recur(n-1)+recur(n-2);
})

用我们的memoizer函数定义阶乘函数

var fibonacci=memoizer([1,1],function(recur,n) {
  return n*recur(n-1);
})

相关文章

  • 构造带记忆功能的函数

    构造一个带有之前结果缓存的函数,减少不必要的计算 用我们的memoizer函数定义fibonacci函数 用我们的...

  • java-构造函数

    构造函数   创建对象,兼职成员对象属性就行赋值。分类:  无参构造函数(默认构造函数)   带参数构造函数 注意...

  • JDK1.8 HashMap源码分析

    关键属性 构造方法 无参构造 带参构造函数 选取带参构造函数二进行分析: 逻辑流程: ①传入相应的自定义的初始容量...

  • C++ 构造函数的奇葩问题(A篇)

    前文:C++ 面向对象-类接口和类的实现 带参数的构造函数 承接上文,这里先说带参数的构造函数,自定义的构造函数必...

  • C++面向对象编程 第二周笔记 GeekBand

    本周学习了带指针类的写法 带指针类中的三个特殊函数 1.拷贝构造函数:又称复制构造函数,是一种特殊的构造函数,它由...

  • 我的JS笔记 -- 类

    JS是没有类的,但JS可以利用构造函数实现近似类的功能。 构造函数 构造函数,是用来创建对象的函数。与普通的函数声...

  • Swift便利构造函数convenience

    便利构造函数: convenience 便利构造函数是对构造函数的一种功能扩充, 可以在初始化之前,根据指定的条件...

  • 结构和类的区别

    结构:值类型结构中不可以初始化字段; 属性;构造函数必须是带参的构造函数;有一个默认的构造函数;在写一个构造函数,...

  • 博览网--C++面向对象高级编程(上)-- C++学习第二周笔记

    一、拷贝构造, 拷贝赋值, 析构 Class 带指针 , 必须有拷贝构造和拷贝赋值函数 1) 拷贝构造函数: ...

  • 第二周、如何定义一个类

    1、类分为带指针的类和不带指针的类 不带指针类的写法: 带指针类的写法: 2、构造函数、析构函数 3、拷贝构造函数...

网友评论

      本文标题:构造带记忆功能的函数

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