命名空间中的 :keys 解构(见 CLJ-1919)支持 `::foo/keys` 或 `::foo/syms` 中的任何类型的标识符,但核心规范只允许 `simple-symbol?`。
示例
用户=> (let [{::keys [:foo]} {::foo 1}] foo)
使用clojure.core/let宏展开时发生语法错误(REPL:1:1)。
...一系列的规范问题
预期
用户=> (let [{::keys [:foo]} {::foo 1}] foo)
1
*提议*: 将此情况的规范从 `simple-symbol?` 扩展到 `ident?`(代码支持)。
*补丁*: clj-2473.patch