アプリの実行中に接続して物事をいじくりまわす目的で、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 として実行しようとしています。
このスレッドは関連しているようですが、そこからどこにも行けませんでした: