在 Clojure 开发期间,我在 REPL 中使用了许多有用的辅助函数。这包括一些内置函数,如docand pprint,但也包括我自己的一些自定义函数user.clj。默认的 clojure 体验似乎是:
dev> (doc +)
;; works
dev> (in-ns 'project.core)
project.core> (doc +)
;; what is this "doc" thing you're talking about!?!?
Run Code Online (Sandbox Code Playgroud)
这是非常令人恼火的(我知道我可以参考clojure.repl/doc这里)。无论我当前在哪个命名空间中操作,是否有一种简单的方法可以确保在开发过程中某些内容可用?
Ale*_*ler -1
如果您遇到这种情况,请执行以下操作:
(clojure.core/refer-clojure)
Run Code Online (Sandbox Code Playgroud)
要求并加载 clojure.core 中的所有内容。
或者另一种方法(如果project.core存在)是:
(require 'project.core)
(in-ns 'project.core)
Run Code Online (Sandbox Code Playgroud)
通过加载命名空间require将引用 clojure.core。
或者如果project.core不存在,则执行以下操作:
(ns project.core)
Run Code Online (Sandbox Code Playgroud)
该ns宏将同时执行refer-clojure和in-ns。