【问题标题】:Clojure Repl Unable to resolve symbol for all functionsClojure Repl 无法解析所有函数的符号
【发布时间】:2012-07-15 13:41:41
【问题描述】:

我在 Core.clj 文件中有使用 Leiningen 创建的项目和以下代码:

(ns hyperstring.core
(:use [clojure.pprint :only (pprint)])
(:require [clojure.java.io :as io]
          [clojure.string :as str])
(:import  [java.io File]))

;;read file line by line
(defn read-line-by-line [filepath]
 (with-open [rdr (reader filepath)]
   (doseq [line (line-seq rdr)]
     (println line))))

;;write to a new file
(defn write-file [filepath]
(with-open [wrtr (writer filepath)]
    (.write wrtr "Line to be written")))

其他功能

我使用 clojure-jack-in 进入 REPL 并使用 (ns hyperstring.core) 切换到我的命名空间。接下来,我尝试启动文件中的任何函数并获取 REPL 答案:

java.lang.Exception: Unable to resolve symbol: read-line-by-line in this context

我错过了什么?也许是一些选项或部门?

clojure-1.4.0、Leiningen-2.0、swank-1.4.4

【问题讨论】:

    标签: clojure read-eval-print-loop


    【解决方案1】:

    (ns some.thing) 不只是切换到命名空间;它创造了它。

    您应该首先使用(例如)加载您的函数:

    (require 'hyperstring.core)

    或者在 core.clj 中来自 Slime,C-c C-k (slime-compile-and-load-file), C-c C-p (slime-repl-set-package)。

    【讨论】:

    • 要切换到加载的命名空间使用in-ns,而不是ns
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 2012-02-10
    • 1970-01-01
    相关资源
    最近更新 更多