我正在尝试将 swank-clojure repl 嵌入到我的应用程序中,以便在应用程序运行时进行连接以解决问题。但是,我在启动 repl 后无法弄清楚如何访问封闭环境。
嵌入 swank-clojure REPL 很简单:
(ns mytest
(:use [swank.swank :exclude [-main]])
(:gen-class))
(defn -main [& args]
(let [x 123]
(swank.swank/start-repl)))
运行程序..然后在emacs中结束:
M-x slime-connect
这工作正常,我已连接。现在,我希望这会起作用:
(println x)
;; 123 (what I was hoping for)
;; Unable to resolve symbol: x in this context (cruel reality)
所以这不能作为将当前环境传递给嵌入式 REPL 的一种方式。
嵌入式 REPL 有没有办法与我正在运行的程序进行交互?
如果不是,有什么理由嵌入 REPL?
如果有什么不同,我正在尝试将其作为 JAR 运行。
该线程似乎相关,但我无法从中获得任何信息: