14

Clojureを初めて使用することをお詫びします。Clojureの世界では、これまで消化できたツールやチュートリアルがあまりないことがわかったので、Light Table(http://www.lighttable.com/)をダウンロードしました。それが簡単になるはずです。私はWindows764ビットを使用していますが、基本的なライトテーブルUIが機能しているようです。

Light Table / Clojureをさらに実験するために、Clojure描画ライブラリQuil(https://github.com/quil/quil)もダウンロードしましたが、LightTableに\quil-master\project.cljに接続するように指示した後です。次に、\ quil-master \ examples(automata.cljやgraphics.cljなど)からさまざまなファイルを開いて実行すると、Light Tableは、回転する青い「思考」アイコンを生成します。または「java.lang.Math」。

「example2.clj」だけが(常にではありませんが)色が変わるひし形のウィンドウを(通常は)ポップアップするという点で機能しているようです。これらの他のQuilの例をLightTableで機能させるには、何をする必要がありますか?

(ちなみに、Mire(Github上の別のClojureプロジェクト)もダウンロードしましたが、Light Tableではまったく実行されません。)

4

1 に答える 1

6

この答えはLightTable0.2.0に対するものでした。私はまだ新しい0.3.0を試していません。

LightTableとQuilを試してみるのは理にかなっています。痛みは主に鶏が先か卵が先かという問題が原因だと思います。

  • LightTableは、(少なくともプロジェクト管理に関して)ある程度の知識を前提としており、「標準」のreplを提供しませんが、さらにインタラクティブな作業スタイルのテストベッドです。
  • Quilは、標準のclojure repl環境での快適さを前提としており、基盤となるJavaプロジェクト(Processing)の多くの複雑さをラップしています。
  • また、Quilの全体的な目的は、「副作用」(他のすべてのグラフィック表示)を生成することであり、LightTableは、関数の副作用ではなく、関数とその戻り値の操作を支援しようとしています。

プロジェクトとしてquilに接続している場合は、example2.cljを開いて実行し(Ctrl Shift Enter)、水色の「nil」を取得します-システムが機能していることをおめでとうございます。(少なくとも、まったく同じ動作を複製でき、例は機能しているようです)。

初めてこれを行うとき、LightTableがQuilのすべての依存関係をダウンロードするのに時間がかかる場合があります(LightTableがハングしているように見える理由、またはLight TableとQuilにまだトリガーされていない相互作用のバグがある可能性があります)。

その「nil」は、Light Tableがファイルを実行した結果の戻り値です(実行中のプロジェクトのコンテキストで)(脚注を参照)。どこか(おそらくフルスクリーンのライトテーブルの後ろに隠れている)に、サンプルを実行して新しいウィンドウを作成する必要があります。

automata.cljを実行することの「java.lang.Math」値も、私が見ているものと一致しています。ここでの秘訣は、defsketchexample2.cljがインラインで実行したが、automata.cljは実行しない呼び出しを生成することです。

関数を呼び出すことでスケッチを作成できますrun-rule

ファイルautomata.cljを実行した後(すべての関数定義をロードするため)、エディターでファイルの最後に次の行を追加します。

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

終了パレンの後にカーソルを置き、Ctrl-Enterを使用して単一のフォームを実行します。再び、新しいウィンドウ(おそらく他のウィンドウの後ろに隠れています-Alt-Tabでタスク切り替えを試してください)が開き、オートマトンデモが実行されます。

ライトテーブルがquilプロジェクトに接続され、automata.cljがすでに評価されている場合は、「instarepl」を開いて次のように入力しても同じ効果を得ることができます。

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

値を編​​集して、何が起こるかを確認してみてください。(Quilの性質全体が副作用であるため、LightTableではこれはそれほどエレガントではありませんが、機能しているようです。)


脚注:

私はLightTableにあまり詳しくありません。水色はファイルの最後のフォームを評価した結果であると予想していましたが、そうではないようです。最後の行でCntl-Enterを使用すると、「nil」ではなく「#'example2/example2」が表示されます。また、私はQuilにあまり精通してdefsketchおらず、マクロは通常の関数ではないため、LightTableと奇妙な方法で相互作用している可能性があります。

于 2013-02-25T19:13:09.743 に答える