【发布时间】:2021-05-29 01:09:17
【问题描述】:
我和这个人有类似的问题:Problems while creating a deps.edn file
但是,我在 MacOS 上并试图按照这本书并使用 deps.edn 而不是 leiningen,所以我无法通过阅读该帖子中的答案来解决我的问题。
我正在使用我的终端窗口,只使用文本文件或 Emacs。
在终端中,我创建了一个名为tennisProject 的文件夹。然后我在该文件夹中创建了 2 个文件,deps.edn 和tennisProject.clj。然后我把网球数据的csv文件放到那个文件夹里。
然后我回到终端并重新启动它。我将tennisProject 设为当前目录。我输入“clj”开始一个repl。然后我做 (in-ns 'packt-clj.tennisProject) 进入正确的命名空间。然后,我输入 (first-match "match_scores_1991-2016_unindexed_csv.csv"),我得到一个错误:
在 (REPL:1:1) 编译时出现语法错误。 无法解析符号:在此上下文中首次匹配
内容如下(我从书中复制粘贴)。
deps.edn:
{:deps
{org.clojure/data.csv {:mvn/version "1.0.0"}
semantic-csv/semantic-csv {:mvn/version "0.2.1-alpha1"}}}
tennisProject.clj:
(ns packt-clj.tennisProject
(:require
[clojure.data.csv :as csv]
[clojure.java.io :as io]
[semantic-csv.core :as sc]))
(defn first-match [csv]
(with-open [r (io/reader csv)]
(->> (csv/read-csv r)
sc/mappify
first)))
我有一些与本书不同的地方:我将名称从网球更改为tennisProject,因为在出现错误后我不断创建新文件夹。我还将 data.csv 版本从“0.1.4”更改为“1.0.0”,因为这就是我链接的答案中的内容,但这并没有解决我的问题。然后我也有语义-csv/语义-csv,但在书中它只是语义-csv。我更改了它,因为 repl 建议我进行更改。
如果我只是在 repl 中一一需要依赖,并在 repl 中定义函数,一切正常,但我真的很想了解所有这些文件是如何协同工作的,感谢您的帮助!
【问题讨论】:
标签: clojure