gpt4 book ai didi

clojure - ^ :dynamic an atomic keyword, 还是组合?

转载 作者:行者123 更新时间:2023-12-02 14:22:42 24 4
gpt4 key购买 nike

^:dynamic 的功能很清楚(例如,参见 clojure and ^:dynamic )。我的问题: ^:dynamic 是原子的,即不可分割的关键字吗?如果不是,以下任何一项也有效吗?运算符/修饰符 ^: 添加到表达式中的内容是什么?

(def ^:dynamic y 5)    -- Valid (known).
(def dynamic y 5) -- but the rest of these? ...
(def ^dynamic y 5)
(def :dynamic y 5)
(def ^: y 5)

或者,也许没有明确的答案:如果 ^:dynamic 是一个不可分割的关键字,为什么要在它上面附加所有有趣的标点符号?

最佳答案

本声明

(def ^:dynamic x 5)

相当于

(def ^{:dynamic true} x 5)

一般来说,^ 后跟关键字或映射是 metadata阅读器宏。后面跟着一个关键字,它在对象的元数据映射中将该关键字设置为 true。

总结一下:^:dynamic 不是一个“不可分割”的关键字;它是一个元数据读取器宏,后跟一个普通关键字(在本例中为 :dynamic)。

关于clojure - ^ :dynamic an atomic keyword, 还是组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28982184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com