如果你对 Python 的一些基本编程概念已有了解,那么你学习 Clojure 就有了良好的基础。
我认为在学习任何事物之初,重要的是以少量的努力获得大量回报,本着这个想法,我总是会尽量在最初限制未知量的数量。
Clojure 需要主语言才能运行,这实际上是一个非常好的特性,因为它受益于巨大的影响力和最丰富的库生态系统。但是对于初学者来说,这意味着在编写程序时,你迟早需要学习 Java 或 JavaScript 至少到一定程度。这可能导致最初时增加额外的摩擦,因此我的建议是基于在你对核心语言有了信心之后再避免这种情况。
Clojure 同样受益于出色的工具,但对于一个只想深入学习的初学者来说,设置起来可能有点困难。
我认为学习该语言的一个好方法是使用在线 REPL 和这本书:[Clojure for the brave and true](https://www.braveclojure.com/do-things/)。《Clojure for the brave and true》。我会复制粘贴示例代码,并对其进行操作,检验你对所学内容的理解。
一旦你觉得你对它足够了解,可以尝试一个小挑战:[Clojurescript Koans](http://clojurescriptkoans.com/)
希望到这时你已经有了一些了解,并想要编写一些程序。
规定的做法是安装 Java 并遵循入门指南
https://clojure.org/guides/getting_started
你还可以开始了解“REPL 驱动的开发”并设置一个文本编辑器,以便在开发过程中快速获得反馈(Clojure 的一个巨大乐趣)。
另一种方法可能是获取一个 [Babashka](https://github.com/borkdude/babashka) 二进制文件的副本,这是一个包括大量 Clojure 的二进制子集。我之所以提到它,是因为它安装非常简单,它允许你编写真正的程序而无需进行太多设置。但即便如此,如果需要使用某些库,你仍然需要使用 JVM Clojure 来实现。
网络上有很多关于学习 Clojure 的资源,从核心语言和 REPL 开始,逐步扩展到你感兴趣的所有领域。