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
For loop for循环不';t执行_For Loop_Clojure - Fatal编程技术网

For loop for循环不';t执行

For loop for循环不';t执行,for-loop,clojure,For Loop,Clojure,我正在写一个小函数,有一个奇怪的bug。我的for循环不执行: (fn [resp] (let [i (s/split resp #"<br>")] (for [j i] (println j)))) (fn[resp] (让我 (s/split resp#“”) (适用于[j i] (println j) 所以我没有结果,也不管我的for部分中的代码是什么。有什么问题吗 编辑: 我重写了我的函数: (fn [resp]

我正在写一个小函数,有一个奇怪的bug。我的for循环不执行:

(fn [resp]
  (let [i
    (s/split resp #"<br>")]
    (for [j i]
      (println j))))
(fn[resp]
(让我
(s/split resp#“
”) (适用于[j i] (println j)
所以我没有结果,也不管我的for部分中的代码是什么。有什么问题吗


编辑:
我重写了我的函数:

(fn [resp]
  (for [i (s/split resp #"<br>")]
    (println i))
(fn[resp]
(适用于[i(s/split resp#“
”)) (一)

它仍然没有执行。

您遇到了Clojure的
for
循环的惰性方面:

(defn dummy []
  (println :aaa)
  (for [i [1 2 3]]
    (println i))
  (println :bbb)
  (vec
    (for [i [1 2 3]]
      (println i)))
  (println :ccc))
调用时,您将获得以下输出:

:aaa
:bbb
1
2
3
:ccc
vec
(或
doall
)将强制对惰性循环求值,从而导致
(println i)
表达式运行


您可以在中查看更多详细信息。

您遇到了Clojure的
for
循环的惰性方面:

(defn dummy []
  (println :aaa)
  (for [i [1 2 3]]
    (println i))
  (println :bbb)
  (vec
    (for [i [1 2 3]]
      (println i)))
  (println :ccc))
调用时,您将获得以下输出:

:aaa
:bbb
1
2
3
:ccc
vec
(或
doall
)将强制对惰性循环求值,从而导致
(println i)
表达式运行


您可以在中看到更多详细信息。

OP很可能不理解Clojure
for
宏与其他语言(如C或Java)中的
for
循环之间的区别。我最好的猜测是OP真正想要的是类似于
(doseq[i[1 2 3]](println i))的东西
.OP很可能不理解宏的Clojure
与其他语言(如C或Java)中的
循环的
之间的区别。我最好的猜测是,OP真正想要的是类似于
(doseq[i[1 2 3]](println i))
的东西。