gpt4 book ai didi

clojure - Lighttable 和 Quil

转载 作者:行者123 更新时间:2023-12-03 22:37:42 24 4
gpt4 key购买 nike

我很抱歉我是 Clojure 的新手。我发现到目前为止我能够消化的 Clojure 世界的工具或教程并不多,所以我下载了 Light Table ( http://www.lighttable.com/ ),这听起来应该更容易。我使用的是 64 位 Windows 7,基本的 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 是非常有意义的。我认为疼痛主要是由于鸡和蛋的问题。

  • LightTable 假定了一些 clojure 知识(至少在项目管理方面)并且不提供“标准”repl,而是一个更具交互性的工作方式的试验台。
  • Quil 假设在标准的 clojure repl 环境中很舒服,并且包装了底层 Java 项目(处理)的大量复杂性。
  • 此外,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 做了内联但 automata.clj 没有。

    您可以通过调用函数 run-rule 来创建草图。 :

    执行文件 automata.clj(以加载所有函数定义)后,将以下行添加到编辑器中的文件末尾:
    (run-rule 101 {:width 100 :height 100 :scale 4})

    将光标放在关闭括号之后,并使用 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 以一种奇怪的方式交互。

    关于clojure - Lighttable 和 Quil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057208/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com