我的计算有点贵(启动数据库),我只想创建数据库,如果我真的要使用它。我正在寻找一个引用变量(或者只是一个普通变量,如果可能的话),它只会在使用(或取消引用)的情况下评估其值。概念上如下所示。Clojure中是否存在惰性变量?
(def v (lazy-var (fn [] (do (println "REALLY EXPENSIVE FUNCTION") true))))
,并在将来,当我要么只使用VAR V,或致电@v,然后我把它打印出“真贵FUNCTION”,并从上面V具有的真正价值。这里最重要的是fn在变量被(de)引用之前不被评估。当需要时,该函数被评估一次并且只计算一次以计算变量的值。这是可能的clojure?
geez,为什么我没有想到这个词,当试图查看这个? –