У меня такой код. Я могу запустить это в repl, но не могу из командной строки. Наверно, у меня есть ленивая проблема с оценкой.Lazy оценка проблема
; items.clj
(def items (ref []))
(defn init-items []
(map
#(dosync
(alter items conj %))
["foo" "bar" "baz" ]))
(init-items)
(println (first @items))
$ java -jar clojure.jar items.clj
$ nil
С уважением.
я работал. Большое спасибо. – Osman
На самом деле 'dorun' лучше подходит для этого случая (' doall' держится на голове seq, он обертывает и возвращает его, тогда как 'dorun' отбрасывает его шаг за шагом и, наконец, возвращает' nil' - таким образом, он лучше подходит для побочный эффект). –
@Michal: Конечно, вы абсолютно правы. Я немного потрудился с Clojure, но никогда не достигал высокого мастерства, и теперь, к сожалению, даже это начинает ржаветь. Спасибо за исправление! –