不可能使用包含单个空选项序列的case,或者使用包含单个选项序列和默认子句的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**之前移除了具有空测试列表的测试子句对,并添加了测试。