1

环境

  • 操作系统:OS X 优胜美地 (10.10.4)
  • GNU Emacs 24.5.1
  • 苹果酒 0.14.0 快照(包:20160806.2354)
  • [org.clojure/tools.nrepl“0.2.12”]
  • [苹果酒/苹果酒-nrepl“0.14.0-SNAPSHOT”]

如果我运行此代码

(defmacro foo []
  (println "column:" (-> &form meta :column)))

(defn bar []
(foo)
 (foo))

(foo)
 (foo)

功能的打印结果是

column: 1
column: 2

但是,外功能的打印结果是

column: 0
column: 1

我希望两个结果都变成相同的列号,但没有。这是正确的行为吗?如果是这样,请告诉我函数内部和外部列索引不同的原因。

附加信息

lein repl使用和时的输出结果(require target-file)相同,使用cider-jack-in和时的输出cider-load-buffer也相同。cider-jack-in使用和时出现问题cider-eval-last-sexp

这种行为是苹果酒的一个错误。我在苹果酒 github 上创建了一个问题。

4

0 回答 0