【发布时间】:2016-10-16 07:02:30
【问题描述】:
(def file (agent nil))
(defn read-file []
(if (= @file nil)
(do
(println "read-file")
(send-off file #(slurp %2) (io/resource "file.txt")))
nil)
@file)
如果我第一次调用read-file,它会返回nil。对于所有后续调用,它会返回文件内容。这是为什么?当我使用atom 时,它可以正常工作。还有为什么#(slurp %2) 需要第二个参数?当我只提供% 时它不起作用?我收到以下错误:
clojure.lang.ArityException: Wrong number of args (2) passed to: core/read-file/fn--3603
【问题讨论】:
标签: concurrency clojure