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 Loop_Clojure - Fatal编程技术网

For loop 加载字符串不';我不能在循环中工作

For loop 加载字符串不';我不能在循环中工作,for-loop,clojure,For Loop,Clojure,在REPL中,这段代码工作得很好,给出了答案36 (do (load-string (str "(def yyy" 2 " 18)")) (* 2 yyy2)) 当我在其中引入for循环时,它就不起作用了 (do (for [x [1 2 3]] (load-string (str "(def yyyy" x " 18)"))) (* 2 yyyy2)) 错误表示无法解析应在加载字符串中定义的符号yyyy2。有专家能给我解释一下原因吗?谢谢 生成一个惰性序列,因此在您强制对其

在REPL中,这段代码工作得很好,给出了答案36

(do
  (load-string (str "(def yyy" 2 " 18)"))
  (* 2 yyy2))
当我在其中引入for循环时,它就不起作用了

(do
 (for [x [1 2 3]]
  (load-string (str "(def yyyy" x " 18)")))
 (* 2 yyyy2))
错误表示无法解析应在加载字符串中定义的符号yyyy2。有专家能给我解释一下原因吗?谢谢

生成一个惰性序列,因此在您强制对其求值之前,不会对
加载字符串
表达式求值。您可以通过在或中为换行
来强制执行

对于只需要使用副作用或只需要迭代一系列数字的情况,也可能很方便。

生成一个延迟序列,因此
加载字符串
表达式在强制计算之前不会进行计算。您可以通过在或中为
换行
来强制执行


对于只需要使用副作用或只需要迭代一系列数字的情况,也可能很方便。

不要在
dorun
doall
中包装
For
,而应该将
For
替换为。@samestp你是对的-我已经编辑了我的答案。谢谢您不应该在
dorun
doall
中包装
for
,而应该将
for
替换为@SamEstep您是对的-我已经编辑了我的答案。谢谢