我试着学习一点Clojure,因为它看起来很不错。但是似乎没有关于如何安装/使用诸如clojure.math.numeric- to之类的库的信息。
现在,我通过在Linux shell中输入以下命令来运行REPL:
java -cp ~/Clojure/clojure-1.3.0/clojure-1.3.0.jar clojure.main
我下载了数字塔jar,并把它放在任何地方。我已经以各种可能的方式修改了-cp选项。我已经把numeric_tower.clj文件放在任何地方了。它还是不能工作。
该如何使用这些库呢?
发布于 2012-01-03 09:49:22
我昨天也遇到了同样的问题(也是作为Clojure的新手)。据我所知,在Clojure 1.2和1.3之间,他们将许多contrib库拆分到单独的项目中,以便更容易管理。并缩小Clojure的核心。
完成你想要做的事情的最简单的方法是通过leiningen (我昨天晚上在#clojure IRC频道的技术方面得到了这个答案)。建议使用leiningen创建一个“游乐场”项目,您可以在其中玩耍并学习Clojure。
因此,使用以下命令创建一个游乐场项目:
lein new playground
修改project.clj文件以包括:
[org.clojure/math.numeric-tower "0.0.1"]
作为依赖项。有人告诉我,http://search.maven.org/是找出哪个是特定库的最新版本的最简单方法。
然后,运行
lein deps
把罐子拉起来。现在你已经准备好了
lein repl
才能上路。
一旦启动了repl,就拉入numeric- in:
(require '[clojure.math.numeric-tower :as math])
然后,您可以执行expt调用:
(math/expt 4 6) ;; yields 4096
希望这能有所帮助!
发布于 2012-01-03 20:50:45
感谢所有人。它现在起作用了。事实上,真正让我困惑的问题是java不能理解类路径中冒号后面的~ (linux home)符号。我在做
java -cp ~/Clojure/clojure-1.3.0/clojure-1.3.0.jar:~/Clojure/lib clojure.main
而java并不理解这一点。
但是,如果您这样做
java -cp ~/Clojure/clojure-1.3.0/clojure-1.3.0.jar:/home/username/Clojure/lib clojure.main
它起作用了。
类路径变量的奇怪行为。
我会使用lein,但由于我正在考虑为android做一些编程,我想如果我能理解所有这些只在java中是如何工作的,那会更好。除非lein也可以打包android项目?
不管怎样,谢谢。所有三个回复都提供了非常丰富的信息。
发布于 2012-01-03 08:20:25
您可以直接将其放入类路径中,就像对clojure.jar所做的那样。如果这两个文件都在当前目录中,您应该用以下命令启动clojure
java -cp clojure-1.3.0.jar:numeric-tower.jar clojure.main
(或窗口)
java -cp clojure-1.3.0.jar;numeric-tower.jar clojure.main
但是,如果该项目位于clojars或maven存储库中,则更容易使用leiningen。它可以减少这类事情的很多麻烦。
https://stackoverflow.com/questions/8706655
复制相似问题