作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
函数doall
、dorun
、doseq
和for
之间有什么区别?
我发现一些信息分散在互联网上,但我认为最好将这些信息集中在这里。
最佳答案
dorun
、doall
和 doseq
都用于强制惰性序列,大概是为了产生副作用。
dorun
- 强制时不要将整个 seq 保留在内存中,返回 nil
doall
- 在强制时将整个 seq 保存在内存中(即全部)并返回 seqdoseq
- 与 dorun
相同,但让您有机会在强制时对每个元素执行某些操作;返回nil
for
的不同之处在于它是列表理解,与强制效果无关。 doseq
和 for
具有相同的绑定(bind)语法,这可能会造成困惑,但 doseq
始终返回 nil
,for
返回一个惰性序列。
关于clojure - doall dorun dideq 和 for 函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25327369/
我有一些结构带有从文件中读取的嵌套惰性序列。当我测试时,我希望能够将它们包装在 doall 的递归版本中,以确保在文件关闭之前从文件中提取所有数据。 最佳答案 (defn doall-recur [s
函数doall、dorun、doseq和for之间有什么区别? 我发现一些信息分散在互联网上,但我认为最好将这些信息集中在这里。 最佳答案 dorun、doall 和 doseq 都用于强制惰性序列,
我是一名优秀的程序员,十分优秀!