2011-01-21 87 views
7

我在認真考慮讓Clojure成爲我的新黑客語言,因爲我喜歡Lisp,但是CL和Scheme有一些問題。我從來沒有在Java環境中工作過,而我的lisp經驗僅限於通過「SICP」和「The Little Schemer」工作。學習來自Lisp的Clojure

我需要知道什麼? 「Clojure的方式?」有沒有好的資源? Clojure風格的任何資源?我發現馬克沃爾克曼的優秀頁面,但我翻閱的書籍似乎有點空閒。

另外,我需要了解哪些關於Java的知識?我寧願不學習Java來學習Clojure,但我想我至少應該知道一點。另外,什麼是工作流程?我的經驗僅限於動態語言,所以我不知道如何在JVM上分發沒有源代碼的應用程序。

我顯然一派這一點,但有大量的信息,而不是非常「Clojure的具體」的東西。

我想我在尋找的那種文學的,我應該以某種邏輯順序讀一些合理的建議。

+1

迂腐,Clojure是一個Lisp。 – 2011-01-21 22:08:43

+0

大聲笑,我意識到我的帖子讓我聽起來像我不知道這一點。這就是我接受clojure的原因。因爲它是lisp。 – 2011-01-21 22:11:37

回答

15

你不能出差錯看着很多Clojure videos on Blip.tv的,你可以處理,特別是那些由Rich希基自己。這些確實有助於推動Clojure特有的概念和方面。

如果你有足夠的熟悉Lisp的概念,您可能希望首先着重於學習如何Clojure的「映射」到的Lisp你有玩過。觀看Rich Hickey的視頻"Clojure for Lisp Programmers."

您確實需要對Java有一定的瞭解,因爲Clojure並不迴避使用它。它不是某種非Clojurey(據我所知)在智能的地方使用Java。我至少會瀏覽API docsjava.langjava.io程序包,因爲java.lang在您的Clojure程序中自動可用,java.io經常使用。

用我的Clojure對Lisp語言的字典中我的頭,我身後我的Java基礎知識,我會選擇一個小項目上工作。保持Clojure和Clojure-contrib API文檔方便(可以在網頁上或使用REPL中的(doc)命令),並仔細閱讀那裏的許多Clojure博客。我最喜歡的兩個是http://nakkaya.com/http://stuartsierra.com/。如果你使用Diigo,一整批博客都被標記爲clojure group

注意:不要掛在你的開發環境。 Getting Started wiki page上列出了許多選項。對於學習的Clojure和你的第一個小項目,我只是挑你選擇的文本編輯器,學習和使用的Leiningen基本得到一個不錯的項目目錄設置與所有的路徑和相關的照顧,然後使用命令「 lein repl「啓動一個REPL,加載所有的依賴關係並且可用。在假設你使用Emacs(根據您以往的經驗的Lisp),你可以describe-variableinferior-lisp-programlein repl,只是從你的示例項目的根目錄開始的Emacs的一切,自動將工作。

你可以閱讀,尤其是Clojure中的喜悅,Clojure的編程和實際的Clojure。後兩者比第一種更「實用」,這更「哲學化」(原諒總體概括)。實用的Clojure是Clojure 1.2的最新版本,而Clojure編程則稍微老一點。

最後,加入#clojure IRC頻道並使用Clojure Google小組,因爲有一羣聰明,友善的人喜歡幫助別人。

2

只是從別人快速的觀點誰從另一個方向來的Clojure(爪哇 - > Clojure的)

  • 我居然發現的Clojure的Lispy部分容易學習,一旦我得到了我周圍的語法和常用成語。我希望這對你更容易。
  • 你並不需要太多的Java知識來完成大多數事情 - 如果你願意,你可以在純Clojure中做很多事情。
  • 這可能只有當你開始想要使用Java庫時,你需要深入Java互操作。幸運的是,互操作非常簡單 - 它比Java風格更具LISP風格,因此唯一需要弄清楚的是如何理解Java接口並從Clojure一方進行適當的調用。

對於我的環境,我使用Eclipse + Counterclockwise。如果你喜歡IDE和/或認爲你最終也想在Java中做一些工作,這種方法非常有效。它不需要進一步的依賴,給你一個優秀的調試器,有一個完整的REPL(我相信嵌入的nREPL),做所有的項目文件管理(Git,SVN等),並自動處理像你的Java類路徑設置可能成爲Java新手的主要障礙!)。如果你認爲這可能適合你的風格,我建議檢查一下,我也聽說過Enclojure的好東西。

如果你不在IDE中,那麼你最好用你最喜歡的文本編輯器和命令行工具,因爲semperos在他的出色答案中提出了建議。

0

我創建的網站叫Clojurecademy初學者學習Clojure的,這是一個互動的平臺,教的Clojure,它就像Codecademy網站對Clojure的