学习另一种口齿不清的方言是否更容易学习clojure?

bat*_*man 4 lisp clojure

我一直在阅读计算机程序的结构和解释.Lisp正在教我思考它的方式.作为一名java开发人员,我想学习clojure.

我知道clojure类似于lisp.所以我的问题是,学习Lisp能帮助我轻松学习clojure吗?这两种语言都有类似的概念吗?

mik*_*era 6

Clojure与其他Lisps有许多相似之处.SICP是一本很好的书,虽然它专注于Scheme,但它教授的很多东西都与Clojure直接相关.

如果你倾向于使用一个Lisp,那么接收另一个就会容易得多.

然而,有一些关于Clojure的事情让它变得"不同"值得注意:

  • 它使用向量[],哈希映射{}和集合#{}以及传统列表扩展了经典的Lisp语法().
  • 它比其他大多数Lisp更像是一种函数式编程语言 - 几乎所有东西都是不可变的,默认情况下序列是懒惰的等等.在某些方面,Clojure受到Haskell的强烈影响
  • Clojure以一种很大的方式包含Java平台 - 它在JVM上运行,您可以直接轻松地使用Java库.因此,尽管您并不完全需要了解Java在Clojure中的有效性,但它有助于了解Java生态系统和工具.
  • Clojure STM系统/并发支持是非常创新和不同的.值得观看此视频:http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey


Ina*_*thi 5

带上一粒盐; 我是一名Common Lisper,有一些Scheme经验刚刚开始使用Clojure,所以我还不是专家.您可能想要谷歌其他人的经历.

看起来Clojure和CL/Scheme之间的区别主要在于细节.总体原则或多或少相同,假设您已经了解其他Lisp之一,那么学习Clojure似乎不会显着改变您对编程的看法.甚至在Scheme中也更加强调不变性和函数式编程,并且一些函数的命名方式不同,你需要平衡parens/bracket/curlies而不仅仅是parens,但这几乎与语言级别有关.

在学习了CL/Scheme后,似乎我到目前为止比Covjure更容易.

最后的想法是,即使您打算再也不去看Scheme ,通过SICP和随附的讲座也值得您花时间.它教授了许多通用的CompSci原则,以及一种特殊的思维方式,它可以帮助您作为开发人员使用您最终使用的任何语言.