线程优先,线程最后和“点”形式

时间:2012-11-02 23:57:02

标签: clojure macros clojure-java-interop

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

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

(. "string" charAt)

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

(. "string" charAt)

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

1 个答案:

答案 0 :(得分:4)

它首先扩展到(.charAt "string"),这确实是最后一次。然后该表格进一步扩展为(. "string" charAt)