2013-02-24 69 views
14

我很抱歉,我是Clojure的新手。我發現迄今爲止我已經能夠消化的Clojure世界的工具或教程並不多,所以我已經下載了Light Table(http://www.lighttable.com/),這聽起來應該使它更容易。我在Windows 7 64位和基本的光表用戶界面似乎工作。Lighttable和Quil

爲了嘗試進一步使用Light Table/Clojure進行試驗,我還下載了Clojure繪圖庫Quil(https://github.com/quil/quil),但指示Light Table連接到\ quil-master \ project.clj,然後打開並執行各種來自\ quil-master \ examples(例如automata.clj或graphics.clj)的文件,Light Table產生我認爲是旋轉的藍色「思考」圖標,它被卡住或最終以「nil」或「java.lang」結尾。數學」。

只有「example2.clj」似乎工作(雖然不總是),因爲它(通常)會彈出一個帶有顏色變化菱形的窗口。我需要做什麼才能讓這些其他Quil示例在Light Table中工作?

(在一個側面說明,我也下載了沼澤(在Github上另一個Clojure的項目),但它也不會輕表在所有運行。)

+3

我不認識的人,我們應該原諒他是新人嗎?畢竟,我們其他人從無知到完全掌握,當然現在知道一切。就個人而言,當一個全新的視角進入時,我無法忍受,尤其是在一個有趣且精心設計的問題中! – 2013-02-25 00:26:12

回答

6

這個答案是對LightTable 0.2。 0。我還沒有嘗試過新的0.3.0。

嘗試並選擇LightTable和Quil是非常合理的。我認爲這種痛苦主要是由於雞和雞蛋的問題。

  • LightTable假定一些Clojure的知識(至少對於項目管理),並沒有提供一個「標準」 REPL,而是一個試驗檯的工作更加互動的風格。
  • Quil假設在標準clojure repl環境中很舒適,並且包裝了一個底層java項目(Processing)的很多複雜性。
  • Quil的全部目的是產生「副作用」(整個其他圖形顯示),LightTable試圖幫助您處理函數及其返回值,而不是函數的副作用。

如果連接到quil作爲項目,打開example2.clj並執行它(Ctrl Shift Enter)並獲得淺藍色「無」 - 恭喜你有一個工作系統! (至少我可以複製完全相同的行爲,並且該示例似乎可行)。

第一次這樣做,可能需要一段時間LightTable下載所有奎爾的依賴關係(也許爲什麼LightTable出現掛 - 或者輕表和奎爾有一個互動的錯誤,我還沒有觸發。)

「nil」是Light Table執行文件(在正在運行的項目的上下文中)產生的返回值(請參閱腳註)。某處(可能隱藏在全屏幕Light Table的背後)應該創建一個新窗口,並運行示例。

執行automata.clj的「java.lang.Math」值也與我所看到的一致。 這裏的訣竅是生成一個defsketch的調用,其中example2.clj做了內聯,但automata.clj沒有。

執行文件自動後:

您可以通過調用函數run-rule創建草圖。CLJ(得到所有加載的功能定義)以下行添加到編輯器中的文件的末尾:

(run-rule 101 {:width 100 :height 100 :scale 4}) 

將光標收盤括號後,執行用Ctrl-輸入單一形式。再次,一個新窗口(可能隱藏在其他窗口後面 - 嘗試使用Alt-Tab切換任務)應該打開運行自動機演示。

通過連接到奎爾項目輕表和automata.clj已經評價你也可以通過打開「instarepl」和打字獲得同樣的效果:

(clj-automata.core/run-rule 101 
         {:width 100 :height 100 
         :scale 4}) 

嘗試編輯的價值觀,看會發生什麼。 (再次奎爾的整個本性副作用的讓這個不那麼優雅的LightTable,但它似乎工作。)


腳註:

我不是很熟悉LightTable。我本來希望淺藍色是評估文件中最後一個格式的結果,但這似乎並非如此。在最後一行使用Cntl-Enter顯示「#'example2/example2」not「nil」。 我對Quil也不是很熟悉,defsketch是宏不是常規函數,所以也許這是與LightTable以奇怪的方式進行交互。

相關問題