【发布时间】:2020-03-19 16:05:18
【问题描述】:
我刚刚开始学习 Clojure,并试图了解两种乍一看似乎非常相似的方法之间的区别。
(def func0 (delay (do
(println "did some work")
100)))
so.core=> (force my-delay2)
did some work
100
so.core=> (force my-delay2)
100
(defn vanilla-func [] (println "did some work") 100)
(def func1 (memoize vanilla-func))
so.core=> (func1)
did some work
100
so.core=> (func1)
100
这两种方法都做了某种函数记忆。我错过了什么?
我试图在https://clojuredocs.org/clojure.core/delay 和https://clojuredocs.org/clojure.core/memoize 上找到解释,但找不到。
【问题讨论】:
标签: clojure