美文网首页
纯记忆函数

纯记忆函数

作者: 勿以浮沙筑高台 | 来源:发表于2016-09-03 23:08 被阅读25次
纯记忆函数

使用闭包解决重复计算的性能开销

1.斐波纳列数列

type memoizeFunction func(int,...int) interface{}
var Fibonacci memoizeFunction
func init() {
        Finonacci = Memoize(func (x int,xs ...int) interface{ }{
              if x< 2{
                  return x
              }
              return Fibonacci(x-1).(int) + Fibonacci(x-2).(int)
        } )
 }```

func Memoize(function memoizeFunction) memoizeFunction {
cache := make(map[string] interface{})
return func(x int,xs ...int) interface{} {
key := fmt.Sprint(x)
for _,i := range xs {
key += fmt.Sprintf(",%d",i)
}
if value,found := cache[key];found {
return value;
}
value := function(x,xs....)
cache[key] = value
return value
}
}```

2.整数转换成罗马数字

var RomanForDecimal memoizeFunction
func init() {
       decimail := [] int{1000,900,500,400,100,90,40,10,9,5,4,1}
       romans :=[]string{"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"} 
       RomanForDecimal = memoize(func(x int,xs ...int) interface{} {
                if x<0 || x>3999 {
                        panic("RomanForDecimal() only handles integers [0,3999]")
                 }
                 var  buffer bytes.Buffer
                 for i,decimal := range decimals {
                       remainder := x / decimal
                       x %= decimal
                       if remainder > 0 {
                            buffer.WriteString(strings.Repeat(romans[i],remainder))
                       }
                  }
                  return buffer.String()
         })
 }```

相关文章

  • 纯记忆函数

    纯记忆函数 使用闭包解决重复计算的性能开销 1.斐波纳列数列 func Memoize(function memo...

  • JS纯函数概念

    判断是否为纯函数的两个指标 纯函数和非纯函数的简单例子 1、纯函数 2、非纯函数 Redux中对使用纯函数redu...

  • 函数式编程(二)—— 纯函数

    目录 纯函数纯函数的概念Lodash——纯函数的代表体验Lodash纯函数的好处可缓存可测试并行处理副作用【函数式...

  • 4.0 C++远征:纯虚函数与抽象类

    3-1纯虚函数抽象类 [TOC] 一、纯虚函数 1.纯虚函数的定义 ​ 纯虚函数,没有函数体,同时定义时在函数...

  • 前端基础—带你理解什么是函数式编程

    框架总览 ? 引言 ? 什么是函数式编程? ? 函数是纯函数? 什么是纯函数? 函数的副作用? 使用纯函数的优点?...

  • 纯虚函数和抽象类

    纯虚函数和抽象类 概念 纯虚函数:没有函数体的虚函数。 抽象类:包含纯虚函数的类就称为抽象类。 纯虚函数就是在函数...

  • 纯函数

    Function VS Procedures 这里的纯函数指的是在函数式编程里面的纯函数。要理解好纯函数这个概念,...

  • 函数式编程(二)

    纯函数 函数式编程中的函数,指的就是纯函数,这也是整个函数式编程的核心纯函数:相同的输入永远会得到相同的输出,而且...

  • 纯函数

    纯函数概念 相同的输入总是返回相同的输出,函数式编程依赖于纯函数 lodash:纯函数功能库const _ = r...

  • Clojure学习笔记(三)——函数式编程

    函数式编程的理念 函数式编程使得代码的编写、阅读、测试和重用都更容易了。 纯函数 函数式程序构建于纯函数之上。纯函...

网友评论

      本文标题:纯记忆函数

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