clojure 入门_clojurescript_clojure入门徐明明

电脑杂谈  发布时间:2017-04-16 09:17:45  来源:网络整理

Clojure 零基础 学习笔记

A language that doesn't affect the way you think about programming, is not worth knowing. --- Alan J. Perlis

如果一门语言无法对你的编程思想造成影响,那么它不值得你去了解 --- Alan J. Perlis

本文集使用 WTFPL 协议

这意味着,欢迎各位随意的转载、修改,以及做一切你想要做的事儿。这正是我想看到的结果。

但务必留一个指向这里的链接,以便读者获取到最新的内容。

(不留的话也无所谓咯)

本人也是一名初学者,水平极为有限。

一方面作为学习笔记使用。

另一方面希望能用最易为理解的语言来描述,让零编程基础的同学也能读懂。

我需要你们的反馈,以提高这个系列严谨性与可读性,使之能为更提供更好的服务!

本系列文章的内容可能随时改动,以优化阅读体验,具体改动内容恕不另行说明。

也许再读的时候会发现变化很大了呢。

如果文中出现了一些非常难以理解的晦涩词句,在仔细思考后仍无法理解,那一定是我的表述存在问题。请直接在文章下方留言,我会详细地解释。再次感谢你的交流与意见。

絮叨

在阅读本文之前,你可能已经学习过其它程序设计语言

Clojure 也许与你接触过的语言有很大的不同

无论如何,请忘记它们

为什么选择 Clojure

传奇语言 Lisp 的一门方言 ,简洁而优雅。

可以方便地与 Java 进行交互:

Clojure 运行于 JVM 之上,这表示你可以直接使用庞大丰富的 Java 库,而 Java 程序也可以反过来调用 Clojure 代码。使得你在 Java 平台上投入的精力不被浪费。

Clojure 能做什么

虽然理论上来说,任何一个完备的程序设计语言,在功能上都是相等的,

也就是说,A 语言可以做到的事情 B 语言一样可以做到。

但是每一种语言是有自己擅长的领域的,

语言的特性决定了其领域。

C / C++ 就比较适合开发一些对效率要求很高的东西。(比如图形引擎,操作系统)

而 Java 则适合用来做后台服务器。(或者写一个 Android 程序,感谢 Android 实现了 Java ME 未竟之事)

Clojure 则借助于 Lisp 得天独厚的优势,提供了解决复杂问题的优雅解决途径:

使用函数式编程,来大大简化你的程序,提高开发效率。

通过宏这种强大的工具,使得你可以编写属于你自己的领域特定语言。(DSL)

同时由于她的不可变特性,以及提供了一些处理多线程的操作,在处理并发时 Clojure 也能显露优势。

我们并不指望你可以一下子感受到语言之间的异同,

但是大概的意思是想让你明白,Clojure 作为一门 Lisp 方言,以强大的表达能力著称, 使之能以更优雅的方式来解决问题。clojure 入门

并不是在贬低其它语言不够优雅,而是这是事实。(雾)(说完就被打了)

在今后的学习中,你会逐渐感受到这种优势带给你的便捷。

为什么 Clojure / Lisp 没有流行

流行只代表着它的使用者很多,与它本身的优秀与否不存在简单的关联。

流行很大程度上与历史情况有关,在 Lisp 刚刚诞生的时候,计算机的运行速度很慢,这导致使用垃圾自动回收、动态特性的 Lisp 的运行速度非常缓慢。

在其之后的诞生的语言 --- 如C,其运行速度和其易用性的平衡,在当时的计算机上达 到了一个相当高的水平,从而成为了一种真正实用的程序设计语言。

而流行这种东西类似“滚雪球”,使用者越滚越多,一旦确立其地位就很难被取代。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-41631-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...