请在 2024 Clojure 状况调查! 分享您的想法。

欢迎!请参阅 关于 页面以了解更多关于如何使用本网站的信息。

0
Clojure

根据 doseq 的文档字符串,以下应返回 nil

user> (doseq [] "not nil") "not nil"

6 个答案

0

评论者:admay

我认为这解决了这个问题。

有一个 (do ...) 表达式在 (seq exprs) 为 nil 时运行,但该 do 表达式的返回值不一定是 nil,如果你的主体部分不是返回 nil 的东西。

0

评论者:mfikes

这很奇怪,因为 {{doseq}} 甚至为这种情况编了代码,鉴于其文档字符串表明绑定和过滤类似于 "for"。由于 {{for}} 要求一个或多个绑定形式,因此这引发了关于 {{(doseq [] "not nil")}} 是否是有效程序的问题。

0

评论者:alexmiller

测试?

0

评论者:admay

这是一些测试!我认为它们适用于 doseq 的用例。我选择了类似 dotimes 的测试,因为它们非常相似。

0

评论者:admay

我从原始测试中移除了 println,转而使用 identity。这样做似乎更合适,这样测试打印输出就不会有一个随机的 'foo'。

0
参考:https://clojure.atlassian.net/browse/CLJ-2283(由ambrosebs报告)
...