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

欢迎!请参阅关于页面以获取更多有关此工作方式的信息。

0
集合

在意外地将关键字和(之前未定义)的符号切换到map解构中时,将会抛出一个错误

(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
...