记忆化,是一种为了提高应用程序性能的FP技术。程序加速是通过缓存函数的结果实现的,避免了重复计算带来的额外开销。
1、现在我们使用Dictionary作为缓存结构
1 public static Func<T, R> Memoize<T, R>(Func<T, R> func) 2 where T : IComparable 3 { 4 Dictionary<T, R> cache = new Dictionary<T, R>(); 5 return arg => 6 { 7 if (cache.ContainsKey(arg)) 8 return cache[arg]; 9 return (cache[arg] = func(arg)); 10 }; 11 }