很抱歉,我是Clojure的新手。到目前为止,我发现在Clojure世界中没有太多的工具或教程可以让我理解,所以我下载了Light Table ( http://www.lighttable.com/ ),这听起来应该会让它更容易。我使用的是64位的Windows7,基本的Light Table用户界面似乎可以正常工作。
为了进一步尝试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中工作?
发布于 2013-02-26 03:13:10
这个答案是针对LightTable 0.2.0的。我还没有试过新的0.3.0。
尝试选择LightTable和Quil是非常有意义的。我认为疼痛主要是由鸡和蛋的问题引起的。
如果你作为一个项目连接到quil,打开example2.clj并执行它(Ctrl Shift Enter),得到一个浅蓝色的"nil“-恭喜你有了一个可以工作的系统!(至少我可以复制完全相同的行为,并且该示例似乎可以工作)。
第一次这样做时,LightTable可能需要一段时间才能下载所有Quil的依赖项(也许是LightTable出现挂起的原因--或者可能Light Table和Quil有一个我尚未触发的交互bug )。
该"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})将光标放在结束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“而不是"nil”。我也不是很熟悉Quil,defsketch是宏而不是常规函数,所以它可能以一种奇怪的方式与LightTable交互。
https://stackoverflow.com/questions/15057208
复制相似问题