首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Eclipse中调试Clojure

在Eclipse中调试Clojure
EN

Stack Overflow用户
提问于 2013-10-11 10:44:11
回答 1查看 1K关注 0票数 2

新手到Clojure和Eclipse,所以请容忍我。

我在Eclipse下运行Clojure 1.5.1,安装了逆时针(CCW)和Leiningen,并且正在测试在Eclipse调试器下运行Clojure代码的过程。我使用以下文件:

代码语言:javascript
运行
AI代码解释
复制
(ns myproject.core)

(defn foo [str]
  (println str "Hello, World!")
)

(defn hello [who]
  (str "Hello " who "!"))

我在(println str "Hello, World!")(str "Hello " who "!"))行上设置断点,在Package窗格中选择"myproject“,单击Run Clojure应用程序,然后启动REPL。现在,问题/问题是:如果我在REPL中键入(hello "Fred"),就会得到

代码语言:javascript
运行
AI代码解释
复制
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(在(hello "Fred")上)“发送”代码到REPL来启动REPL,我只需输入(hello "Fred")并获得预期的输出。当然,这样做不会启动调试器,也不会获取断点,等等。

我的问题是:是否有一种方法可以在Eclipse调试器下运行代码,当代码通过Ctrl“发送”到REPL时,是否可以自动识别名称空间,而不必使用requireuse,而不必完全限定名称空间的函数名?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-11 17:25:33

在CCW中,Ctrl被绑定为“将REPL切换到文件的名称空间”。REPL从名称空间"user“开始,一旦切换到"myproject.core",就不需要userequire了。您还可以使用带有in-ns的REPL切换名称空间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19325139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档