揭秘 Clojure / ClojureScript 入门

Demystifying getting started with Clojure / ClojureScript

我刚刚开始学习 ClojureScript,对很多事情感到困惑,主要是与开发环境有关。我真的很想开始构建一个网页,但几天后还不是很接近。

我正在看一些书,我已经安装了 ClojureLeiningen 以及 re-frame Chestnut 模板,VS Code 的 Clojure 插件, IntelliJ 和 Cursive up 和 运行ning.

所以我有几个小问题:

  1. 为什么我一直读到可以将 React 与 ClojureScript 结合使用? React 显然是一个 JavaScript 库。

  2. 什么是 js-interop,为什么要使用它?

  3. 为什么 REPL 如此重要?如果您的目标是 JVM 或浏览器,为什么还要使用 REPL?

  4. 在 REPL 将 运行 更新代码之前,我必须使用 lein run 吗?

  5. 我得到这个错误的次数比我得到代码做任何事情的次数都多:

user=> (run)
Syntax error compiling at (REPL:1:1).
Unable to resolve symbol: run in this context

这是什么意思?这就是阻止我运行宁Figwheel的原因。 非常感谢。

现在只是学习 Clojure,目标是稍后尝试使用 ClojureScript,可能会使用 React。我已经在这方面工作了几个星期,现在通过 "The Joy of Clojure"(书)和各种网站和 YouTube 演示文稿,但我仍然没有准备好完全了解我在做什么(尽管我已经了解惰性评估和并发支持。是的!)。我曾经做过一些 Scheme ……很久以前。实际上,我现在必须多样化,只是尝试一些发展,因为我感到沮丧;有很多东西要消化。

  1. 您可以将 React 与 ClojureScript 一起使用,因为有 "bindings" for React,允许 React 元素调用 ClojureScript 代码。在 Google 上搜索 "ClojureScript and React"。但是您需要先熟悉 ClojureScript,然后熟悉 React,可能需要 JavaScript 基础知识,然后尝试这种非常规方法。
  2. 您使用“javascript-interop" if you want to call JavaScript code and use JavaScript data structures from your ClojureScript code. The two sides of this "interop" frontier have somewhat different approaches and philosophy. (A big indication of that is that "immutable.js" is even a thing). The same for "java-interop”。
  3. REPL 很重要,因为它们允许您立即输入并 运行 您的代码。非常适合测试和实验。它们还为实际 运行ning 系统提供了一个接口,在某种程度上为您提供了调试器的便利,并结合了更改代码的可能性,手动替换功能,因为它 运行s。这是一种来自 Smalltalk 世界的 "live" 开发方法,与 "dead" 方法相反,在编辑、编译所有内容、运行ning、检查结果、停止、编辑之间循环等等等等。请注意,现在 JVM 有自己的 REPL。请注意,在 React 中构建浏览器应用程序时,系统会立即告知您通过将代码编辑器连接到 Chrome 浏览器来执行实时调试。同一个目标。读这个:The REPL and main entry points. Read this: Progamming at the REPL. Check out some YouTube videos, maybe this。通过启动 REPL 并直接键入代码进行试验。
  4. 可以运行Clojure直接提供的REPL(startclj)或者Leiningen提供的REPL(startlein repl),这是Clojure的REPL with extra。 Node.js 上也可能有 ClojureScript 的 REPL。您可以直接输入代码或使用 (load-file "file") 从文件加载代码。
  5. 表示没有函数run到运行。你必须先写它。 lein run 在 "project" 目录布局中执行应用程序,默认情况下会查找函数 -main。阅读 Leiningen:Leiningen Tutorial.

耐心点,这条路很艰辛,需要坚持。