我正在认真考虑将克罗杰(Clojure)推荐给我的新黑客语言,因为我喜欢LISP,但在CL和计划方面遇到了一些问题。我以前从未在Java环境中工作过,我的LISP经验仅限于通过“ SICP”和“ Little Schemer”工作。

我需要知道什么?在“ Clojure的方式”上有什么好的资源吗?关于Clojure风格的资源吗?我找到了马克·沃尔克曼(Mark Volkmann)的出色页面,但是我看过的书似乎有些备用。

另外,关于Java我需要了解什么?我宁愿不只是学习Clojure的Java,但我想我至少必须知道一点。另外,工作流程如何?我的经验仅限于动态语言,因此我不知道在JVM上没有来源的情况下分发应用程序需要做什么。

我很明显地搜索了这一点,但是有大量信息,也没有太多的“ Clojure特定”内容。

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

有帮助吗?

解决方案

您不会出错,看着很多 克洛杰尔 视频 在blip.tv上 您可以应付,尤其是那些人本人。这些确实有助于推动Clojure独有的概念点和方面。

如果您对LISP概念足够熟悉,则可能最初需要专注于学习与您玩过的Lisps的“地图”。观看Rich Hickey的视频 “为LISP程序员致敬。”

您确实需要熟悉Java,因为Clojure不会回避使用它。这不是某种程度上的lojurey(据我所知)使用Java在智能的地方使用Java。我至少浏览 API文档 为了 java.langjava.io 软件包,因为 java.lang 在您的Clojure程序中自动可用 java.io 经常使用。

我的脑袋里有我的clojure-lisp词典,我的爪哇基础知识在我身后,我会选择 一个小型项目. 。保持clojure和clojure-contrib api文档方便(在网络上或使用depp中使用(doc)命令),并仔细阅读许多许多Clojure博客。我最喜欢的两个是 http://nakkaya.com/http://stuartsierra.com/. 。如果您使用diigo,则将大量博客添加给 Clojure Group.

注意:不要挂在开发环境上。在 入门Wiki页面. 。为了学习Clojure和您的第一个小型项目,我只是选择您选择的纯文本编辑器,学习和使用基础知识 莱宁根 要获得所有您所有的路径和依赖关系的设置,请使用一个不错的项目目录设置,然后使用命令“ lein depp”来启动REPL,并使用您的所有依赖项加载和可用。在假设您使用Emacs(根据您以前的LISP经验)时,您可以 describe-variable 您的 inferior-lisp-program 成为 lein repl, ,并且只需从示例项目的根源开始emacs,以使所有内容自动工作。

图书 您可以阅读,尤其是Clojure,编程Clojure和实用的Clojure的乐趣。后两者比第一个更“实用”,这更“哲学”(理由概括)。实用的Clojure是Clojure 1.2的最新状态,而编程Clojure的年龄却要大一些。

最后,进入#Clojure IRC频道并使用Clojure Google Group,因为有很多聪明,友好的人喜欢帮助他人。

其他提示

只是一个从另一个方向来到克罗吉尔的人的快速视角(java-> clojure)

  • 我实际上发现Clojure的Lispy部分很容易学习,一旦我围绕语法和常见的成语。我希望这对您来说更容易。
  • 您真的不需要太多关于Java的知识来完成大多数事情 - 如果您愿意,您几乎可以在纯Clojure中做所有事情。
  • 可能只有当您开始使用Java库时,您需要潜入Java Interop。幸运的是,Interop非常简单 - 它比Java风格更具LISP风格,因此您唯一需要弄清楚的是如何了解Java接口并从Clojure侧进行适当的调用。

对于我的环境,我使用 + 逆时针. 。如果您喜欢IDES和/或认为您最终也想在Java做一些工作,则此功能非常好。它不需要进一步的依赖项,可以为您提供出色的调试器,具有完整的重复(嵌入式 nrepl 我相信),对所有项目文件管理(git,svn等)进行操作,并自动为您处理诸如Java Class Path的设置之类的东西(这可能是新移民Java的主要障碍!)。我建议您检查一下,如果您认为这可能适合您的风格,我也听到了关于 Enclojure 也是。

如果您不喜欢IDE,那么您最喜欢的文本编辑器和命令行工具可能最好,就像Semperos在他的出色答案中所建议的那样。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top