函数式编程之Clojure(v1.0.2).pptVIP

  • 2
  • 0
  • 约 73页
  • 2017-02-12 发布于湖北
  • 举报
再探Clojure STM(Software Transactional Memory) (12) memoize是一个非常有用的函数,它可以缓存一个输入和输出的映射。这是一个用空间换时间的典型案例。memoize函数中的内部存储是用atom实现。 (defn ^:dynamic slow-double [n] (Thread/sleep 100) (* n 2)) (defn calls-slow-double [] (map slow-double [1 2 1 2 1 2])) (time (dorun (calls-slow-double))) ;;= Elapsed time: 600.349527 msecs ;;= nil 再探Clojure STM(Software Transactional Memory) (13) (defn demo-memoize [] (time (dorun (binding [slow-double (memoize slow-double)] (calls-slow-double))))) (demo-memoize) ;;= Elapsed time: 200.447573 msecs ;;= nil 再探Clojure STM(Software T

文档评论(0)

1亿VIP精品文档

相关文档