初学者。
我可以编译现有的 Clojure 脚本,使用 ClojureScript 在网上运行吗?
假设我有一个脚本在我的终端中打印Hello world
,我想在浏览器上打印该文本。我应该用ClojureScript语法重写整个脚本,还是应该使用其他编译器编译它?
(ns clojure-hello-world.core
(:gen-class))
(defn -main [& args]
(println "Hello World"))
答案 0 :(得分:3)
我将从lein-cljsbuild开始。这将使您获得一个很好的编辑评估并查看浏览器循环。首先获得此设置非常值得,因为它使学习ClojureScript 更多更有趣。我保证值得麻烦。如果你需要更多的互动支持,freenode上#clojure的人们非常友好和乐于助人。
答案 1 :(得分:3)
(长答案:P)
即使 Clojure 和 ClojureScript 共享大量功能,也有一些特定于一个或另一个。例如,JavaScript中没有真正的类,因此:gen-class
形式的ns
规范没有多大意义。
一个重要的事实是 Clojure 和 ClojureScript 的语法完全相同,差异主要与主机VM有关它们在其中运行(在Clojure的情况下为Java VM,在ClojureScript的情况下为JavaScript VM)。
两个Clojure实现here之间存在差异列表。
还有一个名为cljx的工具“编写一个针对Clojure / ClojureScript的可移植代码库”。最近在discussion小组上有一些Clojure Dev围绕最终实施feature expressions,这一方面会弃用 cljx ,但另一方面会使工作复杂化工具必须从Clojure源文件中提取信息。
答案 2 :(得分:1)
基本上,浏览器执行JavaScript。您将ClojureScript代码编译为JavaScript。浏览器通过HTML页面加载JavaScript。因此,您必须创建一个HTML页面并将浏览器指向它。
我开始使用的最简单方法是使用Luminous(http://www.luminusweb.net/docs/clojurescript.md)。
然而,Chestnut(https://github.com/plexus/chestnut)看起来很有希望。