clj-record: когда вызывается: before-save? - PullRequest
1 голос
/ 28 июля 2011

Я использую rand, чтобы назначить значение поля как функцию :before-save в clj-record .Приведенная ниже функция 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 голосов
/ 28 июля 2011

Это похоже на проблему с clj-record.

Вы получаете лень в clojure только с ленивыми последовательностями или с задержками . В противном случае, clojure является строго / нетерпеливо оцененным языком.

...