Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
学习另一种lisp方言会使学习clojure更容易吗?_Clojure_Lisp - Fatal编程技术网

学习另一种lisp方言会使学习clojure更容易吗?

学习另一种lisp方言会使学习clojure更容易吗?,clojure,lisp,Clojure,Lisp,我一直在看书。Lisp教我用它的方式思考。作为一名java开发人员,我希望学习clojure 我知道clojure和lisp很相似。所以我的问题是,学习Lisp能帮助我轻松地学习clojure吗?两种语言中有相似的概念吗?对此持保留态度;我是一个有一些计划经验的普通口齿不清的人,刚刚开始使用Clojure,所以我还不是一个专家。你可能想用谷歌搜索别人的经历 看起来Clojure和CL/Scheme之间的区别主要体现在细节上。总体原则大致相同,而且似乎学习Clojure不会显著改变您对编程的看法,

我一直在看书。Lisp教我用它的方式思考。作为一名java开发人员,我希望学习clojure


我知道clojure和lisp很相似。所以我的问题是,学习Lisp能帮助我轻松地学习clojure吗?两种语言中有相似的概念吗?

对此持保留态度;我是一个有一些计划经验的普通口齿不清的人,刚刚开始使用Clojure,所以我还不是一个专家。你可能想用谷歌搜索别人的经历

看起来Clojure和CL/Scheme之间的区别主要体现在细节上。总体原则大致相同,而且似乎学习Clojure不会显著改变您对编程的看法,假设您已经了解其他Lisp之一。即使在Scheme中,对不变性和函数编程的强调也比你发现的要大得多,一些函数的命名也不同,你需要平衡parens/方括号/卷曲,而不仅仅是parens,但这在语言层面上是非常重要的

在学习了CL/Scheme之后,似乎到目前为止,我与Clojure的相处比其他方式要轻松得多


最后一个想法是,即使你打算再也不看这个计划,通过SICP和该计划工作也是值得的。它教授了许多普遍有用的CompSci原则,以及一种特殊的思维方式,这将帮助您作为开发人员使用最终使用的任何语言。

每种语言都有自己的细微差别。您目前正在学习Lisp的一些小技巧(假设使用通用Lisp/CL),但学习另一种语言,更不用说第二种Lisp方言了,您也将学习这些技巧/差异/细微差别

除非你有很多时间学习,否则如果你对它感兴趣,我会学习Clojure,如果你对它感兴趣,我会学习Lisp

学习Lisp并不是一件坏事,因为您将习惯于学习Lisp方言与基于Algol-C的语言的区别。就这一点而言,关于学习计划也可以提出同样的观点

在Clojure之前,我使用类似的语言编程,但即使Bliss-32和PL/I IMHO更类似于C和Java,它们也是Lisp方言。学习我的部分所需的克洛伊尔——并且仍然需要——比从C到C++(90年代)更大的心理调整。


我喜欢重新排列,但它是渐进的,有一个学习曲线。

Clojure与其他Lisp有许多相似之处。SICP是一本很棒的书,虽然它关注的是Scheme,但它教给你的很多东西都与Clojure直接相关

如果你倾斜一个口齿不清,那么拿起另一个口齿不清会更容易

然而,Clojure有几点“与众不同”,值得注意:

  • 它使用向量
    []
    、哈希映射
    {}
    和集合
    {}
    以及传统的列表
    ()
    扩展了经典的Lisp语法
  • 与大多数其他Lisp相比,它更像是一种函数式编程语言——几乎所有东西都是不可变的,默认情况下序列是惰性的,等等。在某些方面,Clojure感觉受到Haskell的强烈影响
  • Clojure在很大程度上拥抱了Java平台——它运行在JVM上,您可以轻松地直接使用Java库。因此,尽管您不需要严格地了解Java才能有效地使用Clojure,但了解Java生态系统和工具会有所帮助
  • Clojure STM系统/对并发性的支持是非常创新和不同的。值得一看的视频:

    • 我也走了同样的路,因为我的一个朋友是一个老口齿不清的人,他出于兴趣让我学习口齿不清。他早在70年代初就开始黑客攻击,并为一些Lisp公司工作。每当我们谈论编程语言时,他总是引用Lisp中的概念,我觉得我从来没有完全理解他所说的

      学习Lisp对我来说是Clojure的一个很好的开始,我最终选择了Clojure,因为我一直在寻找能够在ARM CPU上运行的Lisp。在我看来,Lisp不太复杂,因为它没有与JavaVM集成,如果不熟悉Java,理解Clojure比理解Lisp困难得多。我只能说,在学习Clojure时,对Lisp有一个很好的基本理解肯定对我有帮助