函数doall
,dorun
,doseq
和for
有什么区别?
我发现一些信息散布在整个Internet上,但是我认为最好在此处集中这些信息。
最佳答案
dorun
,doall
和doseq
都是用于强制延迟序列的,大概是有副作用的。
dorun
-强制执行时不要将整个seq保留在内存中,请返回nil
doall
-在强制(即全部)的同时将整个seq保留在内存中,并返回seq doseq
-与dorun
相同,但是让您有机会对每个元素进行强制操作;返回nil
for
的不同之处在于它是列表理解功能,与强制效果无关。 doseq
和for
具有相同的绑定(bind)语法,这可能会引起混淆,但是doseq
始终返回nil
,而for
返回一个惰性序列。关于clojure - do功能和功能之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25327369/