Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么除了白炽灯本身之外,白炽灯的名称空间需要clojure/core/matrix类或.clj?_Clojure_Jedit_Incanter - Fatal编程技术网

为什么除了白炽灯本身之外,白炽灯的名称空间需要clojure/core/matrix类或.clj?

为什么除了白炽灯本身之外,白炽灯的名称空间需要clojure/core/matrix类或.clj?,clojure,jedit,incanter,Clojure,Jedit,Incanter,在.clj文件中,我有(使用“(白炽灯核心io…)。尝试计算代码时发生此错误:FileNotFoundException无法在类路径clojure.lang.RT.load(RT.java:443)上找到clojure/core/matrix\uu init.class或clojure/core/matrix.clj。如果我将代码更改为:(use'(incater)),那么除了没有必要的名称空间可用之外,一切都正常,这是意料之中的。在过去的18个月里,我一直很高兴地将jEdit与clojure插

在.clj文件中,我有(使用“(白炽灯核心io…)。尝试计算代码时发生此错误:FileNotFoundException无法在类路径clojure.lang.RT.load(RT.java:443)上找到clojure/core/matrix\uu init.class或clojure/core/matrix.clj。如果我将代码更改为:(use'(incater)),那么除了没有必要的名称空间可用之外,一切都正常,这是意料之中的。在过去的18个月里,我一直很高兴地将jEdit与clojure插件一起使用,并仔细验证了我的类路径是否正常。我尝试(使用“…math.combinations”)和csv&json JAR(这些都正常工作),以合理地确定这不是一个jEdit配置问题。我在clojure/core jar中查找“matrix”,但没有找到它。非常感谢您对解决此问题的任何帮助

经进一步调查:
我想我已经找到了问题的根源:在clatrix-0.3.0命名空间声明中,clojure.core.matrix是必需的。当我从类路径中删除clatrix并计算(使用“(incanter core…)时,会发生以下错误:FileNotFoundException无法在类路径clojure.lang.RT.load(RT.java:443)上找到clatrix/core\uu init.class或clatrix/core.clj。当clatrix被添加到类路径时,就会出现我的原始错误(即找不到clojure.core.matrix)。白炽灯核心有一个Matrix.class文件。似乎白炽灯依赖于clatrix,而clatrix依赖于clojure.core。不存在的矩阵。如何解决这个问题或有解决办法?

这里的问题是您没有为库提供可传递的依赖项。clojure.core.matrix不是clojure.core的一部分。显然,无论Jedit使用什么方法来运行Clojure,都无法检测或解决您的依赖关系


虽然此依赖项解析可以手动完成,但让leiningen在开发期间解析依赖项并设置类路径,并在开发期间使用
lein repl
任务启动交互式repl,这是一项不太容易出错的任务,也不太耗时。leinrepl启动一个nrepl服务器,该服务器有一个定义良好的API,多个编辑器/编程环境可以连接到该API。一个好的clojure开发编辑器应该提供一些连接到nrepl服务器的方法。

clojure.core不提供。此外,如果您使用它来解析依赖项并构建类路径,它将自动找到各种库所需的库。我使用leiningen进行完整构建。我发现jEdit是一个开发和测试clojure函数和模块的简单而有用的编辑器。然后你需要手动解决依赖关系。关于你的编辑:你仍然不明白。Clojure.core.matrix存在。我在上面链接到它。如果您使用lein,lein将自动提供它。如果您决定手动解决依赖项,那么您需要找到它并将其放在类路径中。希望Alex Ott能够阐明与我上述问题相关的其他信息,因为这似乎与Incater有关。否。问题是它有您没有提供的依赖项。白炽灯没有问题。您需要提供其依赖项,或者使用自动提供这些依赖项的工具。