clojure - 线程优先、线程最后和 "dot"形式

标签 clojure macros clojure-java-interop

为什么这两个表达式给出相同的结果?

> (macroexpand-all '(->> "string"(.charAt)))

(."string"charAt)

> (macroexpand-all '(-> "string"(.charAt)))

(."string"charAt)

“->>”宏不是应该插入“string”作为列表中的最后一个元素吗?

最佳答案

它首先扩展为 (.charAt "string"),这确实是最后一个。然后该形式进一步扩展为 (."string"charAt)

关于clojure - 线程优先、线程最后和 "dot"形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13204636/

相关文章:

javascript - 如何在 Clojurescript 中循环 JavaScript 对象并将每个对象插入数组

macros - 什么是方案宏?

javascript - 这在 imacros javascript 中可能吗?尝试了很多方法都没有成功

java interop的Clojure优化

clojure - 将抽象/空变量传递给函数 Clojure

java - 从 Java 应用程序内将参数传递到 Duckling Clojure 函数

macros - 帮我在 Clojure 中写 Cond 宏

clojure - 动态变量、绑定(bind)、命名空间可见性

function - Clojure 中的命名空间之间共享函数

assembly - MOV 到宏参数指定的寄存器中