欢迎!请查看关于页面了解这个网站是如何运作的更多信息。
根据 doseq 的文档字符串,以下应该返回 nil。
nil
user> (doseq [] "not nil") "not nil"
评论由:admay
我认为这解决了这个问题。
有一个(do ...)块在(seq exprs)为nil时运行,但如果您的body不是返回nil的内容,那么这个do块的返回值不一定是nil。
(do ...)
(seq exprs)
do
评论由:mfikes
很奇怪,因为 docstring 表示绑定的过滤与 "for" 中提供的一样,而 {{doseq}} 甚至有对于这个情况的代码,因此提出了一个问题,即 {{(doseq [] "not nil")}} 是否是一个有效的程序。
评论由:alexmiller
测试?
这里有一些测试!我认为这些适合用于 doseq 的用例。由于它们非常相似,我就用了和 dotimes 类似的测试。
doseq
dotimes
我移除了原始测试中的 println 以 identity 代替。这样看来更合适,这样在测试打印输出中就不会有随机的 'foo'。
println
identity