首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lighttable和Quil

Lighttable和Quil
EN

Stack Overflow用户
提问于 2013-02-25 06:05:33
回答 1查看 2.3K关注 0票数 14

很抱歉,我是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中工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-26 03:13:10

这个答案是针对LightTable 0.2.0的。我还没有试过新的0.3.0。

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

  • LightTable假设了一些clojure知识(至少在项目管理方面),并没有提供“标准”的repl,而是一种更具交互性的工作方式的试验台。
  • Quil假定在标准clojure repl环境中很舒适,并且包装了底层java项目(处理)的许多复杂性。
  • 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 (加载所有函数定义)后,在编辑器中将以下行添加到文件的末尾:

代码语言:javascript
复制
(run-rule 101 {:width 100 :height 100 :scale 4})

将光标放在结束paren之后,并使用Ctrl-Enter组合键执行单个表单。运行自动机演示时,应该再次打开一个新窗口(可能隐藏在其他窗口后面-尝试使用Alt-Tab切换任务)。

将Light Table连接到quil项目,并且已经对automata.clj进行了评估,您也可以通过打开"instarepl“并键入以下命令来获得相同的效果:

代码语言:javascript
复制
(clj-automata.core/run-rule 101 
                       {:width 100 :height 100 
                        :scale 4})

尝试编辑这些值,看看会发生什么。(同样,Quil的副作用使得这在LightTable中不是很优雅,但它似乎是有效的。)

脚注:

我对LightTable不是很熟悉。我本以为浅蓝色是评估文件中最后一个表单的结果,但事实似乎并非如此。在最后一行使用Cntl-Enter会显示"#'example2/example2“而不是"nil”。我也不是很熟悉Quil,defsketch是宏而不是常规函数,所以它可能以一种奇怪的方式与LightTable交互。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15057208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档