这个答案适用于 LightTable 0.2.0。我还没有尝试过新的 0.3.0。
尝试选择 LightTable 和 Quil 非常有意义。我认为疼痛主要是由于鸡和蛋的问题。
- LightTable 假定了一些 clojure 知识(至少在项目管理方面),并且不提供“标准”repl,而是提供更具交互性的工作方式的测试平台。
- Quil 在标准的 clojure repl 环境中假定舒适,并包装了底层 java 项目(处理)的许多复杂性。
- 此外,Quil 的全部目的是生成“副作用”(整个其他图形显示),LightTable 试图帮助您使用函数及其返回值,而不是函数的副作用。
如果您作为项目连接到 quil,打开 example2.clj 并执行它(Ctrl Shift Enter)并得到一个浅蓝色的“nil” - 恭喜您有一个工作系统!(至少我可以复制完全相同的行为,并且该示例似乎有效)。
第一次这样做时,LightTable 可能需要一段时间才能下载所有 Quil 的依赖项(也许是 LightTable 出现挂起的原因 - 或者 Light Table 和 Quil 有一个我尚未触发的交互错误。)
“nil”是 Light Table 执行文件(在运行项目的上下文中)产生的返回值(见脚注)。应该在某个地方(可能隐藏在全屏 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 切换任务)应该打开运行自动机演示。
将 Light Table 连接到 quil 项目并且 automata.clj 已经评估,您还可以通过打开“instarepl”并键入以下内容来获得相同的效果:
(clj-automata.core/run-rule 101
{:width 100 :height 100
:scale 4})
尝试编辑值并查看会发生什么。(再一次,Quil 具有副作用的整个性质使得它在 LightTable 中并不那么优雅,但它似乎可以工作。)
脚注:
我对 LightTable 不是很熟悉。我原以为浅蓝色是评估文件中最后一个表单的结果,但事实并非如此。在最后一行使用 Cntl-Enter 显示“#'example2/example2”而不是“nil”。我对 Quil 也不是很熟悉,它defsketch
是宏而不是常规函数,所以它可能与 LightTable 以一种奇怪的方式交互。