我有一些 clojure 函数,我想在启动 clojure REPL 时预加载它们。除非您在 REPL 的上下文中使用它们,否则这些函数并没有多大用处。
如果有帮助,我通常使用 leiningen 为我启动一个 clojure REPL。
我如何告诉 clojure(或 leiningen,如果它不能通过 flat clojure 获得)为我预加载包含这些定义的 clojure 文件?
我有一些 clojure 函数,我想在启动 clojure REPL 时预加载它们。除非您在 REPL 的上下文中使用它们,否则这些函数并没有多大用处。
如果有帮助,我通常使用 leiningen 为我启动一个 clojure REPL。
我如何告诉 clojure(或 leiningen,如果它不能通过 flat clojure 获得)为我预加载包含这些定义的 clojure 文件?
在leiningen 示例项目中有几种方法可以做到这一点 ,我最喜欢的方法之一是将你想要的代码放在默认的 repl 命名空间中
/path/to/project/dev/user.clj:
(ns user)
(def foo 42)
并在 project.clj 文件中添加这样的行:
(defproject hello "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]]
:source-paths ["dev"])
这清楚地表明这是用于开发的,同时仍将其加载到默认命名空间中。
当您nrepl-jack-in
从 shell 运行表单 emacs 或“lein repl”时,您应该会看到一个user>
名称空间并加载了您的代码:
; nREPL 0.1.6
user> foo
42