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

欢迎!请访问关于页面以了解更多有关该功能的信息。

+2
Clojure

some-fn的一些参数在匹配失败时返回false,而其他一些返回nil。我建议返回值应该是nil,就像some一样——some-fn就是这个的展开。

user=> ((some-fn identity identity identity) false)
false
user=> ((some-fn identity identity identity identity) false)
nil

登录为: https://clojure.atlassian.net/browse/CLJ-2634

2 个答案

0

被选中
 
最佳答案

这个函数不是一个谓词(结尾不包含?),文档字符串中明确指出“逻辑真”和“逻辑假”。因此,不会修复。

0

这难道不是一个重复的问题吗? https://ask.clojure.org/index.php/10366/some-has-different-short-circuiting-when-using-predicates 在 Clojure 1.11 Alpha 2 中已经修复了?

不是,我不这么认为。

   $ clj -Sdeps \
       '{:deps\nbsp;
        {org.clojure/clojure\nbsp;
         {:mvn/version "1.11.0-alpha2"}}}'
   Clojure 1.11.0-alpha2
   user=> *clojure-version*
   {:major 1, :minor 11, :incremental 0, :qualifier "alpha2"}
   user=> ((some-fn identity identity identity) false)
   false
   user=> ((some-fn identity identity identity identity) false)
   nil
...