如何从另一个命名空间 bene-cmp.core 调用一个 Clojure 命名空间 bene-csv.core 中的函数?我尝试了各种风格的 :require 和 :use 都没有成功。
这是 bene-csv 中的函数:
(defn ret-csv-data
"Returns a lazy sequence generated by parse-csv.
Uses open-csv-file which will return a nil, if
there is an exception in opening fnam.
parse-csv called on non-nil file, and that
data is returned."
[fnam]
(let [ csv-file (open-csv-file fnam)
csv-data (if-not (nil? csv-file)
(parse-csv csv-file)
nil)]
csv-data))
这是 bene-cmp.core 的头文件:
(ns bene-cmp.core
.
.
.
(:gen-class)
(:use [clojure.tools.cli])
(:require [clojure.string :as cstr])
(:use bene-csv.core)
(:use clojure-csv.core)
.
.
.
(bene-cmp.core) 中的调用函数——目前是一个存根
defn fetch-csv-data
"This function merely loads the two csv file arguments."
[benetrak-csv-file gic-billing-file]
(let [benetrak-csv-data ret-csv-data]))
如果我修改 bene-cmp.clj 的标题
(:require [bene-csv.core :as bcsv])
并将调用更改为 ret-csv-data
(defn fetch-csv-data
"This function merely loads the two csv file arguments."
[benetrak-csv-file gic-billing-file]
(let [benetrak-csv-data bcsv/ret-csv-data]))
我收到这个错误
引起:java.lang.RuntimeException:没有这样的变量:bcsv/ret-csv-data
那么,我该如何调用 fetch-csv-data 呢?谢谢你。