use*_*464 14 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一起运行.)
这个答案适用于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执行内联,但automata.clj没有.
您可以通过调用函数来创建草图run-rule:
执行文件automata.clj(以加载所有函数定义)后,在编辑器中将以下行添加到文件末尾:
(run-rule 101 {:width 100 :height 100 :scale 4})
Run Code Online (Sandbox Code Playgroud)
将光标置于关闭paren之后,使用Ctrl-Enter执行单个表单.再一个新窗口(可能隐藏在其他窗口后面 - 尝试使用Alt-Tab进行任务切换)应该打开运行自动机演示.
使用连接到quil项目的Light Table和已经评估的automata.clj,您还可以通过打开"instarepl"并输入以下内容来获得相同的效果:
(clj-automata.core/run-rule 101
{:width 100 :height 100
:scale 4})
Run Code Online (Sandbox Code Playgroud)
尝试编辑值并查看发生的情况.(同样,Quil的整体性质是副作用,这使得LightTable中的这种情况不那么优雅,但似乎有效.)
脚注:
我对LightTable不太熟悉.我本以为浅蓝色是评估文件中最后一个表格的结果,但似乎并非如此.在最后一行使用Cntl-Enter显示"#"example2/example2"not"nil".我对Quil也不太熟悉,并且defsketch宏不是常规函数,所以也许这与LightTable以奇怪的方式进行交互.