Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
clojure:对于未调用的循环内容_Clojure - Fatal编程技术网

clojure:对于未调用的循环内容

clojure:对于未调用的循环内容,clojure,Clojure,我正在尝试使用Clojure中BaseX的内部数据类型构建XML结构 (defn basex-elem [token-name dict] (let [elem (org.basex.query.item.FElem. (org.basex.query.item.QNm. token-name))] (for [[k v] dict] (do (println "THIS IS REACHED") (let

我正在尝试使用Clojure中BaseX的内部数据类型构建XML结构

(defn basex-elem [token-name dict]
  (let [elem (org.basex.query.item.FElem.
                (org.basex.query.item.QNm. token-name))]
    (for [[k v] dict]
      (do
        (println "THIS IS REACHED")
        (let [k-name (org.basex.query.item.QNm. (.getName k))
              k-attr (org.basex.query.item.FAttr.
                        k-name 
                        org.basex.util.Token/token v))]
          (.add elem k-attr))))
    elem))
使用此按钮创建元素时,永远不会打印“到此为止”:

(def test-elem (basex-elem "element-name" {:key1 "value1", :key2 "value2"}))
; => #'user/test-elem 
因此,返回的值没有任何属性:

test-elem
; => #<FElem <element-name/>>
测试元素
; => #
但添加属性则不然

(.add test-elem
      (org.basex.query.item.FAttr.
        (org.basex.query.item.QNm. "foo")
        (org.basex.util.Token/token "bar")))
; => #<FElem <element-name foo="bar"/>>
(.添加测试元素
(org.basex.query.item.FAttr。
(org.basex.query.item.QNm.“foo”)
(org.basex.util.Token/Token“bar”))
; => #

因此,大概我对循环做了一些错误的事情。有任何指针吗?

for
在clojure中不是循环构造,而是列表理解并生成惰性序列


当需要副作用时,请使用
doseq

for
在clojure中不是循环构造,而是列表理解,并生成惰性序列

当需要副作用时,使用
doseq

“产生惰性序列”。。。就在文档()中,我没有看到它。谢谢“生成一个惰性序列”。。。就在文档()中,我没有看到它。谢谢