gpt4 book ai didi

macros - Clojure 宏展开

转载 作者:行者123 更新时间:2023-12-04 07:11:44 24 4
gpt4 key购买 nike

为什么

(macroexpand '(.. arm getHand getFinger))

扩展到
(. (. arm getHand) getFinger)

尽管
(macroexpand '(-> arm getHand getFinger))

扩展到
(getFinger (clojure.core/-> arm getHand))

换句话说,为什么是 ->在第二个例子中没有完全扩展?

最佳答案

macroexpand只扩展表格直到函数位置的符号不是宏。您在 -> 的情况下注意到这一点的原因是因为->宏是递归的。

在你的情况下,你想要 macroexpand-all表单 clojure.walk

关于macros - Clojure 宏展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4304424/

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