小编lyh*_*kia的帖子

将依赖项“clojure.tools.trace”导入到 Clojure 中的 REPL 失败:找不到文件

我是 Clojure 的新手,试图用函数调试我的程序trace

我在 REPL 中试过这个:

(require '[clojure.tools.trace :as trace])
Run Code Online (Sandbox Code Playgroud)

但它抛出一个异常:

Execution error (FileNotFoundException) at user/eval199 (REPL:1).
Could not locate clojure/tools/trace__init.class, clojure/tools/trace.clj or clojure/tools/trace.cljc on classpath.
Run Code Online (Sandbox Code Playgroud)

*e 是这样说的:

#error {
 :cause "Could not locate clojure/tools/trace__init.class, clojure/tools/trace.clj or clojure/tools/trace.cljc on classpath."
 :via
 [{:type java.io.FileNotFoundException
   :message "Could not locate clojure/tools/trace__init.class, clojure/tools/trace.clj or clojure/tools/trace.cljc on classpath."
   :at [clojure.lang.RT load "RT.java" 462]}]
 :trace
 [[clojure.lang.RT load "RT.java" 462]
  [clojure.lang.RT load "RT.java" 424]
  [clojure.core$load$fn__6839 invoke "core.clj" 6126]
  [clojure.core$load invokeStatic "core.clj" 6125]
  [clojure.core$load doInvoke "core.clj" …
Run Code Online (Sandbox Code Playgroud)

dependencies clojure read-eval-print-loop

1
推荐指数
1
解决办法
97
查看次数

在 Clojure 中的命名空间中隐藏核心函数

我正在尝试隐藏我的命名空间之一中的核心函数。代码的工作原理如下:

核心.clj:

(ns test.core
  (:refer-clojure :exclude [zero?])
  (:require [test.z :refer [zero?]]))

(defn -main
  (prn (zero? 1)))
Run Code Online (Sandbox Code Playgroud)

z.clj:

(ns test.z
  (:refer-clojure :exclude [zero?]))
(defn zero? [x] (+ x 1))
Run Code Online (Sandbox Code Playgroud)

运行时,显示错误信息:

; (err) WARNING: zero? already refers to: #'clojure.core/zero? in namespace: test.z, being replaced by: #'test.z/zero?
Run Code Online (Sandbox Code Playgroud)

我不确定 Clojure 是否允许这样做,有人可以帮助我吗?多谢!


编辑:这似乎是问题所在,但错误消息确实令人困惑。不管怎样,非常感谢!

clojure

0
推荐指数
1
解决办法
384
查看次数