clj-record:什么时候:之前保存叫?

时间:2011-07-28 16:05:22

标签: random clojure lazy-evaluation

我正在使用rand clj-record 中将字段值指定为:before-save函数。下面的random-str函数用于生成值。

(def VALID-CHARS
    (map char (concat (range 48 58) ; 0-9
        (range 65 91) ; A-Z
        (range 97 123)))) ; a-z

(defn random-char []
    (nth VALID-CHARS (rand (count VALID-CHARS))))

(defn random-str [length]
    (apply str (take length (repeatedly random-char))))

当我随后使用从 clj-record create功能返回的地图时,该字段的值与数据库中的值不同。这是否意味着存在一些懒惰的评估诡计? random-str被多次调用了吗?

1 个答案:

答案 0 :(得分:0)

这听起来像是clj-record的一个问题。

只有懒惰序列或delays才会在clojure中出现懒惰。 否则,clojure是一种严格/急切评估的语言。