无法使用单个空选项序列与case一起使用,也无法与单个选项序列和默认条款一起使用。
我希望
bq. (case 1 () :a :none)
返回 :none,但它失败了,并发出了一个无用的异常:“未处理的clojure.lang.ArityException:传递给:core/max的参数数量不正确(-2)”
我希望 (case 1 () :a) 会导致“java.lang.IllegalArgumentException:没有匹配的条款”,但相反它也失败了,并带有
"未处理的clojure.lang.ArityException:传递给:core/max的参数数量不正确(-2)”
这似乎不一致,因为当存在其他选项时传递空的选项列表是可以的
bq. (case 1 () :a 2 :b :none)
返回 :none,正如预期的那样
附带的补丁在进一步转换为case**之前删除了带有空测试列表的测试条款对,并添加了测试。