【问题标题】:Writing a "cheating" Quine in Clojurescript用 Clojurescript 写一个“作弊”的 Quine
【发布时间】:2016-10-25 02:40:11
【问题描述】:

假设我们想用 clojure 写一个作弊的 quine,我们可以这样做:

(ns cheating-quine)
... stuff here doesn't really matter ...
(println (slurp *file*))

现在,这在 Lein Figwheel 中不起作用,因为 file 的值最终类似于 /tmp/form-init########.clj,并且包含引导代码某种意义上的。

问题:我们如何才能让这种“作弊”的 quine 在 clojurescript 中工作?

注意:目标不是写一个quine。目标是编写一个 cljs 程序,该程序 可以访问它在其中定义的文件。这整个“作弊”的事情是试图比我之前的失败尝试更好地解释这个问题

Clojure + Clojurescript: Macro to read code of current file

【问题讨论】:

    标签: clojure clojurescript


    【解决方案1】:

    作弊解决方案是分发源代码(例如,将其放入资源中并作为文件提供)并编译引导程序以加载和执行代码,并让它拉下您的文件,并在文件中加载同一个文件...这样它就可以对当前正在运行的代码发出 HTTP 请求并执行它。这本质上就是 ClojureScript 浏览器 REPL(例如 http://clojurescript.io/)的工作方式……它们即时编译和执行传入的代码。 clojuresript.io 是 ClojureScript bootstrapping 的一个很好的工作示例,如果您对它感兴趣的话,但请注意,有很多事情要做,所以希望投入相当多的时间:)

    【讨论】:

    • clojurescript.io 太棒了!感谢分享!它看起来像一个未来派的用户界面
    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2016-01-09
    • 2013-04-29
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多