以下代码可以正常工作,但是如果 `(inc a)` 依赖 `a` 已经被绑定,这在文档中并未明确指出。
user=> (defn foo [a {:keys [b] :or {b (inc a)}}]
[a b])
user=> (foo 1 {:b 99})
[1 99] ;; :or 不需要
user=> (foo 1 {})
[1 2] ;; :or 将 b 绑定为 (inc a)
在顺序解构中,绑定是否按顺序执行,以便后续的 :or 值表达式可以依赖前面的顺序绑定?
根据当前解构实现,这是正确的,但在文档和/或测试中寻找这一表述。