学习Clojure来自Lisp

Jos*_*sto 3 jvm clojure jvm-languages

我正在认真考虑让Clojure成为我新的黑客语言,因为我喜欢Lisp但是在CL和Scheme方面存在一些问题.我以前从未在Java环境中工作,我的lisp经验仅限于通过"SICP"和"The Little Schemer"工作.

我需要知道什么?"Clojure方式"有什么好的资源吗?Clojure风格的任何资源?我找到了Mark Volkmann的精彩页面,但我看过的书看起来有点空.

另外,我需要了解Java的哪些方面?我不想学习Java只是为了学习Clojure,但我想我至少应该知道一点.另外,工作流程是什么样的?我的经验仅限于动态语言,所以我不知道在JVM上分发没有源代码的应用程序需要做些什么.

我已经用Google搜索了这一点,但是有大量的信息,并没有太多"特定于clojure"的东西.

我想我正在寻找一些关于我应该以某种逻辑顺序阅读的文献的明智建议.

sem*_*ros 15

你可以在Blip.tv上观看尽可能多的Clojure 视频,尤其是Rich Hickey自己的视频.这些确实有助于将Clojure特有的概念点和方面带回家.

如果您对Lisp概念非常熟悉,您可能希望最初专注于学习Clojure如何"映射"到您玩过的Lisps.观看Rich Hickey关于"Clojure for Lisp Programmers"的视频.

你确实需要熟悉Java,因为Clojure不会回避使用它.在某些情况下,使用Java并不是Clojurey(据我所知).我至少浏览了针对和包的API文档,因为它在您的Clojure程序中自动可用并且经常使用.java.langjava.iojava.langjava.io

我的Clojure-to-Lisp字典在我脑海中,而我的Java基础知识在我身后,我会选择一个小项目来处理.保持Clojure和Clojure-contrib API文档方便(在Web上或使用REPL中的(doc)命令),并仔细阅读许多很多Clojure博客.我最喜欢的两个是http://nakkaya.com/http://stuartsierra.com/.如果你使用Diigo,那么一大堆博客已被收藏到clojure组.

注意:不要挂在开发环境中." 入门"维基页面上列出了众多选项.为了学习Clojure和你的第一个小项目,我只需选择你选择的纯文本编辑器,学习并使用Leiningen的基础知识来获得一个很好的项目目录设置,并且所有的路径和依赖关系都要处理,然后使用命令" lein repl"启动一个REPL,所有依赖项都已加载并可用.在假设你使用Emacs(根据您以往的经验的Lisp),你可以describe-variable你的inferior-lisp-programlein repl,只是从你的例子项目的根目录的一切,自动将工作启动Emacs.

可以读,尤其是Clojure中的喜悦,Clojure的编程和实际的Clojure.后两者比第一种更"实用",更"哲学"(粗略概括).实用Clojure是Clojure 1.2的最新版本,而Programming Clojure有点老了.

最后,加入#clojure IRC频道并使用Clojure Google小组,因为有一群聪明,友善的人喜欢帮助他人.