Lighttable和Quil

时间:2013-02-24 22:05:33

标签: clojure lighttable quil

我很抱歉我是Clojure的新手。我发现到目前为止我已经能够消化的Clojure世界的工具或教程并不多,所以我已经下载了Light Table(http://www.lighttable.com/),这听起来应该是它更轻松。我使用的是Windows 7 64位,基本的Light Table UI似乎正在运行。

为了尝试进一步尝试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.Math”。

只有“example2.clj”似乎可以工作(尽管并非总是如此),因为它(通常)会弹出一个带有变色钻石的窗口。我需要做些什么才能使这些其他Quil示例在Light Table中工作?

(另一方面,我也下载了Mire(Github上的另一个Clojure项目),但它也不会与Light Table一起运行。)

1 个答案:

答案 0 :(得分:6)

这个答案适用于LightTable 0.2.0。我还没有尝试新的0.3.0。

尝试选择LightTable和Quil非常有意义。我认为疼痛主要是由于鸡和蛋的问题。

  • LightTable假设有一些知识(至少在项目管理方面)并且不提供“标准”代表,而是为更加互动的工作方式提供试验平台。
  • Quil假定在标准的clojure repl环境中很舒服,并且包含了很多基础java项目(Processing)的复杂性。
  • 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执行内联但自动执行.clj没有。

您可以通过调用函数run-rule

来创建草图

执行文件automata.clj(以加载所有函数定义)后,在编辑器中将以下行添加到文件末尾:

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

将光标置于关闭paren之后,使用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“not”nil“。 我对Quil也不是很熟悉,defsketch宏不是常规函数,所以可能是以LightTable的奇怪方式进行交互。