请在 2024 年 Clojure 调查问卷! 中分享您的想法。

欢迎!请参阅 关于 页以获取更多关于此如何工作的信息。

0
集合

当在映射解构中意外切换关键字和(之前未定义的)符号时,会正确抛出错误

(let (link: {:b b} {:b 1}) b)

=> CompilerException java.lang.RuntimeException: 无法在此上下文中解决符号:b,编译:(/tmp/form-init7939480206147277345.clj:1:1)

然而,当符号(以下使用 "a")被定义时,存在一个更微妙的问题

(def a 0)
(let (link: {:a a} {:a 1}) a)
=> nil

预期:解构应只接受定义的关键字::or、:keys、:as、:strs 和 :syms 作为解构映射的键。

3 个答案

0

评论由:michaelblume发表

这可能是CLJ-1613的重复。

0

评论由:claj发表

Michael,我认为这是一个略有不同的问题。

0
...