开始学习Clojure

5
我是一个相对新手的程序员,我读了SICP的前半部分,直到它深深地烙在我的身体细胞中,参加了一门用Java实现基本数据结构的课程,并在Mathematica中编写了程序。但这大概就是我的知识范围了,这也是我的问题所在。
我正在尝试通过NetBeans/Enclojure玩Clojure,但老实说,除了在REPL中构造函数和操作数据结构之外,我不知道如何做更多的事情。
例如,我想使用Incanter进行统计分析,但我不知道如何安装它,因为我从来没有真正使用过终端(我正在使用Windows Vista),也不知道从哪里开始。当我搜索谷歌时,所有的教程似乎都假定了Unix的知识,或者假定了如何使用emacs等的知识。
我想要的是一个在线教程,涵盖了如何为一个编程环境设置一切的最基本知识,而不是假定先前有任何知识。
谢谢,
Bryan

2
https://groups.google.com/forum/#!forum/clojure 上的人非常乐于助人。 - user100464
6个回答

6
我也是一个相对新手程序员。我的建议是Unix或Linux是更容易编程的环境。我知道你说你没有经验,但是你可以在一个下午学习基本命令。学习基本的Unix命令要比学习Java或Clojure容易得多。优点是一旦你对Unix/Linux有了一些基本的熟悉,那么整个环境就变得简单得多。这是一份针对从未使用过Unix的人的Unix指南:http://www.ee.surrey.ac.uk/Teaching/Unix/ 试用它的一个快速方法是下载Cygwin,这是一个在Windows中运行的Unix模拟器。你可以安装它,然后尝试Unix。此外,当你安装Cygwin时,你会得到一个可以与之一起安装的语言和文本编辑器列表,所以设置该环境变得相当容易:http://www.mcclean-cooper.com/valentino/cygwin_install/ 不过,我不建议永远使用Cygwin,它只是一个开始并查看是否喜欢在Unix环境中编程的方式。

+1,因为这是非常好的长期建议。学会使用Linux,即使你不会每天都用它。学会使用真正的文本编辑器(vim,emacs)。一开始可能会耗费时间,但以后在生产力和知识方面将会有很大的回报。 - jdl
赞同。Unix更容易编程,并且在开源社区中占主导地位;即使您不经常使用它,了解其操作方式也是很好的。我使用Cygwin大约三年时间,可以自信地说,它比纯Windows更容易编程。现在我在真正的Linux机器上工作,感觉更好。 - amalloy

5
您可以阅读一些介绍Clojure的书籍,例如《Practical Clojure》和《The Joy of Clojure》,这些书籍可以让您更好地理解这种语言。
关于安装插件等问题,您可以在以下页面上阅读。项目通常使用MavenLeiningen进行维护(我提供了我的文章链接)。依赖项(如Incanter)可通过clojars找到,并放入项目文件中。
而Clojure邮件列表是一个很好的问问题的地方...

3
Clojure很有趣,但管理依赖关系并不容易。
我认为使用Leiningen创建和构建项目及其依赖项将帮助您跳过繁琐的部分 :) 尽管我听说从Windows上使用Leiningen也完全没有问题,但我认为尝试摆脱CLI并没有多大好处。您可以继续使用Windows,并花一些时间学习Windows shell(或powershell),我听到了很多好消息。
哦,还有一个人投票支持Clojure的乐趣:)

3
如果您坚持使用Windows环境,那么我可以推荐Clojure Box。

http://clojure.bighugh.com/

如果您具有灵活性,我建议使用Virtualbox设置虚拟机并在*nix环境中工作。幸运的是,您可能不需要做太多工作,因为已经有了预配置编辑器、依赖管理和其他工具的即插即用解决方案。

See http://technomancy.us/150

一些例子包括: http://github.com/notifymd/vagrant-clojure-box http://github.com/Seajure/emacs-clojure-vagrant
但需要注意的是,这些似乎依赖于gem。
作为奖励,如果您愿意花时间学习*nix,那么我也可以推荐我的依赖管理软件。您应该能够使用任何编辑器,但我只熟悉emacs。如果您告诉我您使用的是什么,我应该能够帮助您设置它。

http://github.com/bmillare/dj


2

我喜欢保持简单。对于Netbeans,您需要导入Incanter JAR文件,因为它们只是Java库。搜索如何将库添加到Netbeans。完成后,您可以在Netbean的REPL中使用Incanter。

如果您想学习更多,请遵循其他人的建议并学习Leiningen、命令行界面、Linux、emacs等。


1

不幸的是,为Clojure设置开发环境几乎是学习它最困难的部分。正如其他回答这个问题所示,没有单一、规范的方法。

你可能考虑另一个选项LispCabinet。尽管它的名字是LispCabinet,但它提供的选项之一是设置Clojure编程环境。这种方法的几个优点是:1)它适用于Windows;2)它是一个Emacs环境,因为你会发现很多教程都是使用这个编辑器进行操作;3)它使得探索和玩耍其他更传统的Lisps(如CLISP和SBCL)变得容易。

我也曾经用NetBeans和enclojure开始学习。我非常喜欢NetBeans用于Java和PHP,但enclojre似乎不太稳定。它经常出问题。所以我放弃了它。

如果你更喜欢IDEA和Eclipse这些环境,也有相应的插件可供选择。

但是,我真的推荐LispCabinet。您可以在我的博客http://clarkonium.net/2011/02/getting-started-with-lispschemeclojure/上看到稍微长一点的解释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接