Clojure と Eclipse の初心者なので、ご容赦ください。
Eclipse Juno で Clojure 1.5.1 を実行し、反時計回り (CCW) と Leiningen をインストールして、Eclipse デバッガーで Clojure コードを実行するプロセスをテストしています。次のファイルを使用しています。
(ns myproject.core)
(defn foo [str]
(println str "Hello, World!")
)
(defn hello [who]
(str "Hello " who "!"))
(println str "Hello, World!")
and行にブレークポイントを設定(str "Hello " who "!"))
し、Package Explorer ペインで「myproject」を選択し、Run-Debug As-Clojure Application をクリックすると、REPL が起動します。さて、ここに問題/問題があります: (hello "Fred")
REPL を入力すると、
CompilerException java.lang.RuntimeException: Unable to resolve symbol: hello
in this context, compiling:(NO_SOURCE_PATH:1:1)
プロシージャ コールを として修飾しようとすると、同じエラーが発生します(myproject.core/hello "Fred")
。実行する唯一の方法は、最初に発行(require 'myproject.core)
してから発行すること(myproject.core/hello "Fred")
です。これを行うと、ブレークポイントが認識され、コードが適切な場所で中断され、変数が表示され、問題がなくなります。
関数名を完全に修飾する必要はありませんが、の使用は推奨されないことを理解してい(use 'myproject.core)
ます。(require 'myproject.core)
use
一方、Ctrl-Alt-S (これは Windows の場合) を使用して REPL にコードを「送信」することで REPL を開始すると、単純に入力(hello "Fred")
して、期待される出力を取得できます。もちろん、この方法で実行してもデバッガーは起動せず、ブレークポイントも取得されません。
私の質問: Eclipse デバッガーでコードを実行する方法はありますか? コードが Ctrl-Alt-S 経由で REPL に "送信" されたときに名前空間が自動的に認識されるようにする方法はありますか?require
またはを使用する必要use
はありません。関数名を名前空間で完全修飾するには?