この答えは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」値も、私が見ているものと一致しています。ここでの秘訣は、defsketch
example2.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と奇妙な方法で相互作用している可能性があります。