请分享您的想法,参加 2024 年 Clojure 状态调查!

欢迎!请访问 关于 页面以获取更多关于此如何操作的详细信息。

0 投票
Clojure

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

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

6 个答案

0 投票

评论由:admay 提供

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

有一个 (do ...) 框在实际是 nil 时会运行,但如果你主体中的代码不会返回 nil,那这个 do 框的返回值不一定会是 nil。

0 投票

评论由:mfikes 提供

鉴于文档字符串表示绑定和过滤与非 "for" 提供的方式相同,{{doseq}} 在此类情况 下甚至有代码,这是很奇怪的。因为 {{for}} 需要一个或多个绑定表达式,所以 {{(doseq [] "not nil")}} 是否是一个有效的程序引起疑问。

0 投票

评论由:alexmiller 提供

测试?

0 投票

评论由:admay 提供

这里有一些测试!我认为它们适合应用于doseq。我选择了类似dotimes的测试,因为它们很相似。

0 投票

评论由:admay 提供

我从原始测试中删除了println,改为使用identity。这似乎更为合适,以免在测试打印输出中出现随机的'foo'。

0 投票
参考资料:[https://clojure.atlassian.net/browse/CLJ-2283](https://clojure.atlassian.net/browse/CLJ-2283)(由ambrosebs报告)
...