函数doalldorundoseqfor有什么区别?

我发现一些信息散布在整个Internet上,但是我认为最好在此处集中这些信息。

最佳答案

dorundoalldoseq都是用于强制延迟序列的,大概是有副作用的。

  • dorun-强制执行时不要将整个seq保留在内存中,请返回nil
  • doall-在强制(即全部)的同时将整个seq保留在内存中,并返回seq
  • doseq-与dorun相同,但是让您有机会对每个元素进行强制操作;返回nil
  • for的不同之处在于它是列表理解功能,与强制效果无关。 doseqfor具有相同的绑定(bind)语法,这可能会引起混淆,但是doseq始终返回nil,而for返回一个惰性序列。

    关于clojure - do功能和功能之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25327369/

    10-09 09:34