我正在尝试按照Clojure Data Analasys Cookbook中的示例进行操作。我正在使用LightTable来玩这个程序。第一个示例显示了如何读取.csv数据。
我使用了lein new getting-data。然后我将两个依赖项添加到项目文件
(defproject getting-data "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"]
[incanter/incanter-core "1.4.1"]
[incanter/incanter-io "1.4.1"]
]
)
然后在core.clj文件中我说如下,在LightTable中使用cmd-shift-enter来评估程序,但我得到了这些例外:
(use 'incanter.core 'incanter.io)
clojure.lang.Compiler $ CompilerException:java.lang.RuntimeException:无法解析符号:在此上下文中使用,编译:(/ Users / idf / Documents / clojure / getting-data / src / getting_data / core.clj :1:1)
(read-dataset "data/small-sample.csv")
clojure.lang.Compiler $ CompilerException:java.lang.RuntimeException:无法在此上下文中解析符号:read-dataset,编译:(/ Users / idf / Documents / clojure / getting-data / src / getting_data / core .clj:4:1)
不确定我做错了什么?
答案 0 :(得分:2)
“无法解析符号:在此上下文中使用”意味着光表环境基本上无法评估任何内容:没有任何与此相关的问题可能是问题所在。不使用light table,我无法提供有关修复它的进一步建议,但看起来你已经以某种方式徘徊在没有引用clojure.core
的命名空间中。如果您在实际想要运行的其余代码之前(clojure.core/refer 'clojure.core)
,它应该可以工作,但当然这不是必需的。
答案 1 :(得分:0)
把你的代码
(ns getting-data.core)
(use 'incanter.core 'incanter.io)
(read-dataset "data/small-sample.csv")
在生成的core.clj文件中移动并按strg-enter。现在它应该评估编辑器中的所有内容。或者打开项目并打开一个Instarepl,LightTable应该询问你应该进入哪个项目。
问候 FRICKE