这三个表达式都应该工作(根据 @dnolen 在 IRC 中的说法)
user> (match/match [5] [((:or 5 6) :as x)] x) CompilerException java.lang.RuntimeException: Unable to resolve symbol: x in this context user> (match/match [5] [(:or (5 :as x) (6 :as x))] x) 5 user> (match/match [5] [(:or (5 :as x) (6 :as y))] x) CompilerException java.lang.RuntimeException: Unable to resolve symbol: x in this context
第一个对我来说是有意义的,但后两个不;例如,在最后一个例子中是否应该 {{y}} 是 {{nil}},或者其他什么?
尽管这不是必须的,但如果以下“糖化”形式也能工作就好了
user> (match/match [5] [(:or 5 6 :as x)] x) CompilerException java.lang.RuntimeException: Unable to resolve symbol: x in this context