나는 애플 리케이션이 일들로 주위에 엉망이 실행되는 동안 연결을 목적으로 내 응용 프로그램에 swank-clojure repl을 포함하려고합니다. 그러나 repl를 시작한 후 엔 클로징 환경에 액세스하는 방법을 파악하는 데 문제가 있습니다. 이맥스에서 다음 이상 ..임베디드 swank-clojure가 임베디드 된 프로그램에 액세스 할 수 있습니까?
(ns mytest
(:use [swank.swank :exclude [-main]])
(:gen-class))
(defn -main [& args]
(let [x 123]
(swank.swank/start-repl)))
프로그램을 실행 : 잘 작동
M-x slime-connect
내가 연결하고
젠체하는-Clojure의 REPL을 포함하면 쉽게 충분하다.
(println x)
;; 123 (what I was hoping for)
;; Unable to resolve symbol: x in this context (cruel reality)
은 그래서 임베디드 REPL 현재 환경을 전달하는 방법으로 작동하지 않습니다
: 자, 내가 이을 기대하는 것은이 작동 것이라고했다.임베디드 REPL이 실행중인 프로그램과 상호 작용할 수있는 방법이 있습니까?
그렇지 않은 경우 REPL을 임베드하는 이유는 무엇입니까?
아무런 차이가 없으면이 파일을 JAR 파일로 실행하려고합니다.
이 스레드는 관련,하지만 난 그게 어디서나 얻을 수 없습니다 것 같다 :
Embedding swank-clojure in java program
답변을 주셔서 감사합니다. 미칼과 내 문제를 지적 해주십시오. :/: 사용을 요구하십시오. 네임 스페이스에 대한 여러분의 의견이 핵심이었습니다. 나는 이전에 (def x)를 시도했지만 REPL이 잘못된 네임 스페이스에 있었기 때문에 * 작동하지 않는 것 같습니다. 흥미있는 다른 사람들을 위해, 이것과 비슷한 것은 작동하는 것처럼 보입니다 .. (def x (atom nil)) (defn -main [& args] (do (reset! x "123") (start-swank))) 그런 다음 슬라임 연결을 실행하고 REPL에서 올바른 네임 스페이스로 전환하십시오. (ns "뭐든") – allclaws