13

我有一些 clojure 函数,我想在启动 clojure REPL 时预加载它们。除非您在 REPL 的上下文中使用它们,否则这些函数并没有多大用处。

如果有帮助,我通常使用 leiningen 为我启动一个 clojure REPL。

我如何告诉 clojure(或 leiningen,如果它不能通过 flat clojure 获得)为我预加载包含这些定义的 clojure 文件?

4

1 回答 1

15

在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
于 2013-09-01T02:40:19.830 回答