我使用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记录create函子返回的映射时,该字段的值与数据库中的值不同。这是否意味着有一些懒惰的评估正在进行?random-str是否不止一次被调用?
发布于 2011-07-28 17:56:39
这听起来像是clj唱片的问题。
在clojure中,只有使用惰性序列,或者使用延迟,才会出现懒惰。否则,clojure是一种严格/热切的计算语言。
https://stackoverflow.com/questions/6862066
复制相似问题