Hello World - Clojurescript

时间:2014-12-08 19:58:56

标签: clojure clojurescript

初学者。

我可以编译现有的 Clojure 脚本,使用 ClojureScript 在网上运行吗?

假设我有一个脚本在我的终端中打印Hello world,我想在浏览器上打印该文本。我应该用ClojureScript语法重写整个脚本,还是应该使用其他编译器编译它?

(ns clojure-hello-world.core
  (:gen-class))

(defn -main [& args]
  (println "Hello World"))

3 个答案:

答案 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)看起来很有希望。