`
ClojureScript 1.10.339
cljs.user=> (defn foo ([x] [:single x]) ([& xs] [:variadic xs]))
'cljs.user/foo
cljs.user=> (foo 1)
[:single 1]
cljs.user=> (foo 1 2)
[:variadic 1]
`
请注意,可变参数调用给出了错误的答案。
似乎正确的做法不是“让它工作”,而是拒绝不正确的代码。请看Clojure
user=> (defn foo ([x] [:single x]) ([& xs] [:variadic xs])) 编译器异常 java.lang.RuntimeException: 不能有固定arity的函数比可变arity的函数参数多,编译:(NO_SOURCE_PATH:1:1)