考虑以下Clojure代码:
(let [a (find-a) b (find-b)] (println a) (println b))
其中b是一个序列。函数find-a中也有一些println语句。我期望在标准输出中看到的是: a, find-a中的println语句的结果, b。 然而,实际上得到的输出是: a, b的一部分, find-a中的println语句的结果, b的剩余部分。
这是由于序列的惰性求值引起的吗?
(let [a (find-a) b (find-b)] (println a) (println b))
其中b是一个序列。函数find-a中也有一些println语句。我期望在标准输出中看到的是: a, find-a中的println语句的结果, b。 然而,实际上得到的输出是: a, b的一部分, find-a中的println语句的结果, b的剩余部分。
这是由于序列的惰性求值引起的吗?