我很抱歉我是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一起运行。)
答案 0 :(得分:6)
这个答案适用于LightTable 0.2.0。我还没有尝试新的0.3.0。
尝试选择LightTable和Quil非常有意义。我认为疼痛主要是由于鸡和蛋的问题。
如果你作为一个项目连接到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的奇怪方式进行交互。