Clojure Handbook (by jamesqiu)

Clojure Handbook (by jamesqiu)

ID:40056991

大小:2.12 MB

页数:72页

时间:2019-07-18

Clojure Handbook (by jamesqiu)_第1页
Clojure Handbook (by jamesqiu)_第2页
Clojure Handbook (by jamesqiu)_第3页
Clojure Handbook (by jamesqiu)_第4页
Clojure Handbook (by jamesqiu)_第5页
资源描述:

《Clojure Handbook (by jamesqiu)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ClojureHandbook最后更新:2012‐11‐01发音:['kləuʒə]可落叶儿λ☯“和别人分享你的知识,那才是永恒之道”——somebody前言:这只是份简单的笔记,先写点废话在前面。书籍浩如烟海,技术方面的书也是汗牛充栋,可惜我们的阅读速度和理解力、记忆力太有限,好不容易学懂的知识转眼就变得非常陌生,“博闻强志、过目不忘”者毕竟罕见。对于大部分人来说,即便昔日信手拈来的东西,时间久了也会毫无头绪。所以知识不在于学过多少,而在于你能记住和使用多少。“好记性不如烂笔头”——近年来我慢慢习惯把费力学习的东西都做一个笔记,一是在学习的过程中加深印象,毕竟技术学习不同于欣

2、赏娱乐大片和浏览娱乐新闻看个过眼烟云;二是便于学而“时习之”,书上的东西一般是针对不同技术背景的读者,有很多作者费力用墨之处对你来说纯属废话,而他一笔带过的地方恰恰让你困惑不已。事实上本文的大部分内容不是读某一本或者某几本书的笔记,而是在我尝试Clojure语言特性或者用Clojure解决问题时的代码及说明。90%以上的人都不喜欢写东西,因为写作太难了,但写不那么正规的短信、微博、邮件、回帖这种片段文字就容易多了,本文的内容也是由不同时间写的简单小段文字拼接而成的,然后在有心情的时候做些调整。Lisp是一门神秘的语言,有无数的geek,hacker对他推崇备至,也有众多的程序员

3、对它嗤之以鼻,他和我们小学、中学、大学最先接触的Basic、Pascal、Fortran、C/C++是如此的风格迥异,以至于第一眼看上去就令人排斥。其根本原因在于,大部分人有天生的排异反应,对于和自己理念相左的事物,第一反应就是:切!胡扯!但其实人类能提出的任何新玩意儿,没有那个是和原有知识完全脱钩的。终于有一天,我看到一篇文章(Lisp的本质(TheNatureofLisp)),分析Lisp就是XML++,即Lisp表达式既表示数据也表示代码,代码即数据、数据即代码,..简化成(f..)。Clojure是Lisp出生数十年后的新的实现(200x年出品),或者JL

4、isp(LisponJVM)。对于从C/Java或者其他FP走过来的人,Lisp/Clojure有很多“别扭”的用法,很难记清楚用正确。学任何语言,包括Clojure,最佳的做法是把它用到日常的应用开发中,不断加深记忆。但即便你准备这么做了,手头没有一份方便的备查材料,刚开始也会步履艰难。我在使用的过程中也有这个体会,所以才不厌其烦地把一些学来并尝试过的东西记在本文档中备查,以便之后能行云流水地“玩转”它。个人认为,对于一门编程语言使用中的查阅,大致有几个阶段:查教程(tutorial)——》查手册(handbook)——》查自己写的库(把个人所有的编程语言经验写成类或函数)。

5、这个材料,不是严格的教程,或手册,而是介于这两者间。Clojure目前已经出版了几本书,这些书从各自的角度解读Clojure,大部分是英文的,不利于以母语速度快速浏览。如果说数学问题用公式表达最清楚,那么编程问题就是用图表和代码表示最清楚,这二者也是本文用的最多的表达方式,我尽量采用简短的代码来说明问题(简短代码也能说明很多事情,广受赞誉的《EffectiveJava》基本没有超过一页的程序代码)。能够熟练使用Java的程序员,参考本笔记,应该可以自如地开始着手写Clojure程序。另:本材料起名ClojureHandbook也勾起我对多年前买的一本后来不知去向的好书《TheJ

6、avaHandbook》的怀念(中文名Java使用手册,基本算当时市面上最早的Java书,作者PatrickNaughton还因私生活问题进过局子)。希望本材料能给同样对Clojure感兴趣的人一些帮助。——JamesQiujamesqiu@msn.comhttp://qiujj.com【目录】CLOJUREHANDBOOK1WHYCLOJURE1.1美观方便、DSL1.2易用的数据结构1.3STM模型1.4基于JVM1.5CLOJURE是LISPRELOAD1.6代码==数据1.7开发社区1.8几点期待2LANG2.1REPL2.2定义变量DEFLETBINDING2.3内部

7、变量2.4基本类型2.5类型判断2.6DO执行多条语句2.7条件语句IFWHENCONDCONDPCASE2.8循环语句2.9正则表达式REGEX2.10命名空间2.11结构DEFSTRUCT(不用了)2.12类DEFRECORD2.13接口DEFPROTOCOL2.14对比RECORD、PROTOCOL、PROXY、DEFMULTI2.15‐>和‐>>函数2.16编码命名规范3COLL数据结构3.1LIST3.2VECTOR3.3SET3.4MAP3.5操作3.6序列SEQ4函数4.1函数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。