欢迎!请参阅 关于 页面以了解更多关于如何使用本网站的信息。
根据 doseq 的文档字符串,以下应该返回 nil。
nil
user> (doseq [] "not nil") "not nil"
评论者:admay
我认为这修复了这个问题。
有一个 (do ...) 代码块会在 (seq exprs) 是 nil 时运行,但这个代码块的返回值不一定为 nil,如果它的主体是某些不返回 nil 的内容。
(do ...)
(seq exprs)
评论者:mfikes
很奇怪, {{doseq}} 甚至为这种情况编写了代码,而文档字符串表明绑定和过滤是按照 "for" 提供的来实现的。因为 {{for}} 需要一个或多个绑定形式,所以这引发了一个问题,即 {{(doseq [] "not nil")}} 是否是一个有效的程序。
评论者:alexmiller
测试?
这里有一些测试!我认为这些适合用于doseq的情况。由于它们之间的相似性,我只是采用了与dotimes类似的测试。
doseq
dotimes
我移除了原始测试中的println,改为使用identity。这样做似乎更合适,这样测试打印输出中就不会有随机的'foo'了。
println
identity