资料下载网
首页 计算机 考试教辅
JavaScript动态函数式语言精髓_周爱民 pdf电子书免费下载
首页 > 计算机 > javascript > JavaScript动态函数式语言精髓_周爱民 pdf电子书免费下载

《JavaScript动态函数式语言精髓_周爱民》pdf电子书免费下载


下载方式一:

百度网盘下载地址:https://pan.baidu.com/s/1CSm8-Gw-U6phmM8XOl2z6w
百度网盘密码:1111

下载方式二:

http://ziliaoshare.cn/Download/ac_123568_pd_JavaScriptDTHSSYYJS_ZAM.zip

 


JavaScript动态函数式语言精髓_周爱民

作者:周爱民

出版社:empty

《JavaScript动态函数式语言精髓_周爱民》介绍

精简版·序

我从未停止过对语言的思考。曾经很长的段时间里,在临入睡前我的脑海中总会响起种声音“我解决了语言问题”,我也在实现着一种语言, 我用Java Seri pt来做这件事情。我选择它只是因为熟悉, 以及它而睡醒时, 我仍觉得自己是无知小儿, 编程|余年, 我写过(Delphi源代码分析, 我从中看到了一门语言如何从代码变成操作系统中可以运行的程序。我也写过《大道至简——软件工程实践者的思想》。我在其中说“语言不过是C工程的)细数木节“,面成书之后,我便义投入了新的,当前你所看的这本书的撰写之中,语言于我,是个死结。我直在寻求尽头,或展望于将来,或求源于过往,我在道大河的中间,前后观望,时而俯首所得的,不过是一掬破碎的倒影,倒影中,还是我的迷惘。足够的表现力,我用它来做面向对象、面问切面、面向接口编程等等的尝试,也用它来模拟操作系统的调度机制, 或构架业务系统的技术柜架。在另一些代码中, 我也看到过用JavaScript代码来模拟CPU的指令流水线, 或者实现真实的虚拟机……但我认为没有必要向您去解说一种语言是何等的强大(或者专业、优秀与特异),完全没有必要、因为,它不过是一种语言,一种语言只是一种思想的表现,而不是思想木身。什么才是决定语言的未来的思想呢?或者我们也可以换个角度来提出这个问题:世界要一种什么样的语言?特性众多、适应性强, 就是将来语言的特点吗?我们知道现在的C#与JAVA都在向这条道路前进。与特定的系统相关,就是语言的出路吗?例如曾经的VC++,以及它面向不同的平台的版本。当然,在类似的领域中,还有C,以及汇编等等……我们回顾这样的例举,其实都是在特定环境下的特定语言,所不同的无非是环境的大小。这其实也是程序员的心病:我们到底选Windows平台, 还是Java平台, 或者Linux系统, 再或者是……我们总是在不同的厂商及其支持的平台中选择,而最终这种选择又决定了我们所使用的语言。这与喜好光关,也与语言的好坏无关,不过是一种趋利的选择黑了。所以,也许你是在使用着的只是种“并不那么“好””,以及并不能令你那么开心地编程的语言,你越发辛勤地工作,越发地为这些语言摇旅鼓噪,你也就离语言的真相越来越远。当然。这也不过是一种假设。但是,真相不都是从假设开始的么?语言有些很纯粹,有些则以混杂著称。如果编程世界只有一种语言,无论它何等复杂,也必因毫无比较而显得足够纯粹。所以只有在多种语言之间比较,才会有纯粹或混杂这样的效果:纯粹与混杂总是以一种或多种分类法为背景来描述的。我们了解这些类属概念的标准,原则,也就回溯到了种种语言的木实:它是什么、怎么样,以及如何工作。这本书,将这些分类回测到两种极端的对立:命令式与说明式,动态与静态。我讲述了除开静态语言(殷是指类似C、C++、Delphi等的强类型、静态、编译型语言) 之外的其它三种类型.正是从根底里具有这三种类型的特性, 所以JavaScript具有令人相当困扰的混合语言特性, 分离它们,井揭示将它们混沌物的方法与过程,如历经涅磐.在这经历中,这本书就是我的所得,语言是种交流的上具,这约定了语言的“具”本质,以及“交流”的功用。“1具”的选择只在于“功用”是香能达到,而不在于工具是什么在数千年之前,远古祭师手中的神杖就是他们与神交流的具。祭师让世人相信他们裝畏的是神,而世人只需要相那柄神杖,于是,假如祭师不小心丢掉了神杖,就可以常而息之地内做一根,甚至,他们可以随时将旧的换成更新或更旧的神杖,只要他们称这是一根更有利于通神的杖,对此,世人往往散出迷感的表情,或者欢欣鼓舞的情状,今天,这科表情或情状样地出现在大多数程序员的脸上,出现在他们听闻到新计算机语言被创生的时刻。神杖换了,祭师还是祭师,世人还是会把头叩得山响。祭师掌握了与神交流的方法(如果真如同他们自己说的那样的话),而世人只看见了神杖。所以,泛义的工具是文明的基础,而确指的工具却是思人的器物。计算机语言有很多种分类方法,例如高级语言或者低级语言,其中一种分类方法,就是“静态语言”和“动态语言”——事物就是如此,如果用对绝对反义的词来分类,就相当于概含了事物的全体。当然,按照中国人中庸平和的观点,以及保守人十对未知可能性的假设,我们还可以设定一种中间态:半动态语言。你当然也可以叫它半静态语言,这个随便你。所以,我们现在是在讨论一种很泛义的计算机语言工具,至少在眼下,它(在分类概念中)概含了计算机语言的一分之一、当然,限于我自身的能力,我只能讨论一种确指的工具,例如Java Seri pt.但我希望你由此看到的是计算机编程方法的基础, 而不是某种愚人的器物。JavaScript的生命力可能足够顽强, 我假定它比C还强, 甚至比你我的生命都顽强。但它只是盟人的器物,因此反过来说:它能不能长久地存在都并不重要,重要的是它能不能作为这“二分之的泛义”来供我们讨论,新打开副扑克牌,我们总看到它被整齐的排在那里,从A到K及大小王,接下来,我们将它分为二,然后交义在起:再分开,再交义……但是在重新开同之前,你是否注意到:在上述过程中,牌局的复杂性其实不是巾“分开”这个动作导致的,而是巾“交义”这个动作导致的。所以分类法本身并不会导致复杂性.就如同一副新牌具有四套A-K,我们可以按十三牌面来分类,也可以按四种花色来分类。当你从牌盒单把它们拿出来的时候,无论它们是以哪种方式分类的,这副牌都不混乱。混乱的起因,在于你交叉了这些分类。同样的通理,如果世界上贝有动态、静态两种语言,或者真有半动态语言而你又有明确的“分类法”,那么开发人员将会迎来清醒明朗的每一天:我们再也不需要花更多的时间去学习更多的占怪语言了,然而,第一个问题便来自于分类本身,因为“此即”的分类必然导致特性的缺失――如果没有这样“北此即被”的标准就不可能形成分类,但特性的缺失又正是开发人员所不能容忍的。我们方面吃着面里,方面念着锅里,即使锅里镖起来的那片菜叶未见得有碗的肉好吃,我们也定要撈起来尝尝。而且大多致时候,由于我们吃肉吃腻了嘴,因此会觉得那片菜叶咪道其实更好。所以首先是我们的个性,决定了我们做不成绝对的素食者或肉食者,多年以来,我在我所看不见的黑暗与看得见的梦境中迫寻着答案。这本书是我最终的结论,或结论面前的最后层表象:我们需要从纯化的语言中领悟到我们编程的本质,井以杂的语言来创造我们的世界。我看到:同部的、纯化的语言可能带来独特的性质,而从全局来看,世界是因为混杂而变得有声有色。如果上帝不说“要有光”,那么我们将不能了解世象之表:而世象有了表面,便有了混杂的色彩,我们便看不见光之外的切事物,我们依赖于光明,而事实是光明遮住了黑暗。如同你现在正在使用的那种、两种或更多种语言,阻碍了你看到你的未来.语言分类法参见【人月神话3, 美国呈克+布鲁克斯(Freder ckP.Ea ook gJr) 著保罗·格雷尼姆是汁机程手语言Arc的设计者, 著有多本美于程序语言、以正创业方面的书研这是一本软件工程方面的书,恒注社被人看成是西学书籍或有人希从市求取养生之道,当然,更有一些人说我们的确需要一个新的东西来使我们更加强健。但不幸的是,大多数提出这种需求的人,都在寻求纯质银弹或混合毒剂,无论如何,他们要么相信总有一种事物是完美武器,或者更多的特性放在一起就变成了魔力的来源。我不偏向两种方法之任一。但是我显然看到了这样的结果,前者是我们在不断地创造井特化某种特性,后者是我们在不断地混介种种特性更进一步地说,前者在产生新的分类法以试图让武器变得完美,后者则通过混淆不同的分类法,以期望通过突变商产生奇迹。函数式语言就是来源于另外的一种分类法。不过要说明的是.这种分类法是计算机语言的原力之一,基本上来说,这种分类法在电子计算机的实体出现以前就已经生了,这种分类法的基础是“运算产生结果, 还是运算影响结果”前种思想产生了函数式语言(如LISP)所在的“说明式语言”这一分类,后者则产生了我们现在常见的C、C++等语言所在的“命令式语言”这一分类。么找到混合毒剂、所以一方面很多人宣称“函数式是语言的未来“,另一方面也有根多人把这一者相同之处,都在于需要更多的分类法.然而我们已经说过,人们需要更多的分类的目的,是要么找到类似银弹的完美武器,要种分类法与其他分类法混在起,于是变成了我们这本书所要讲述的“动态函敖式语言”――当然, 毋庸置疑的是:还会有更多的混合法产生.因为保罗·格雷厄姆(Paul Graham)已经做过这样的总结:往上加LISP模式的特性, 例如运行时类型和无用单元收集.然而这毕竞只是“创生种新语言”的魔法.那么,到底有没有让我们在这浩如烟海的语言家族中,找到学习方法的魔法呢?我的答案是:看清语言的本质,而不是试图学会门语言.当然,这看起来非常概念化.甚至有人说我可能是从某本教材中抄来的,另外一些人又说我试图在这本书里宜讲类似于我那本《大道至简》里的老庄学说.二十年来,开发新编程语言的一个流行的秘诀是:取C语言的计算模式,逐渐地其实这很冤枉.我想表达的意思不过是:如果你想把副牌理顺。最好的法子,是回到它的分类法上,要么从A到K整理,要么按四个花色整理.毕竟,两种或更多种分类法作用于同事物,只会使事物混淆而不是弄得更清楚,因此,本书从语言特性出发,把动态与静态,丽数式与非雨数式的语言特性分列出来。先讲述每种特性,然后再讨论如何去使用(例如交叉)它们-特性与技巧'不过这都将溪掉了两张王牌,这正是问题之所在。因为如果“对一分为二的方法”,那么应该分为“玉牌”和“本王年,但达北不做存月点朴克玩家们采用,因力风且性才是他们的生日标*在lava Seri pt 2—这种把银弹涂上毒到双试图购单发手枪击乐龙的构想发布之的“昨天”,无论哪种语言(或其他工具)都有其独特的特性,以及借鉴白其他语言的特性,有些语言通体没有“独特特性”,只是另外一种语言的副本,这更多的时候是为了“满足些人使用语言的习”还有一些语言则基本上全是独特的特性,这可能导致语言本身不实用,但却是其他语言的思想库。我们已经讨论过这一切的来源,对于Java Seri pt来说, 除了动态语言的基本特性之外, 它还有着与其创生时代背景常切相关的一些语言特性。直到昨天*, JavaScript的包建者还在小心翼冀地增补着它的语言特性, 而本书的主要努力之,就是分解出这些语言原子,井重现特它们混合在起的过程与方法。通过从复杂性到单语言特性的还原过程,让读者了解到语言的本实,以及“层出不穷的语言特性”背后的真柑,所谓技巧,是“技术的取巧之处”所以根本上来说,技巧也是技术的部分,很多人(也包括我)反对技巧的使用,是因为难以控制,并且容易破坏代码的可读性。技巧的使用取决于具体的目标,以及“需要、能够”维护这个代码的人对技巧的理解。这包括:■技巧是一种语言特性, 还是仅特定版木所支持成根木就是BUG:即使如此,我仍然希望每一个技巧的使用都有说明,甚至示例,如果维护代码的人不能理解该技巧,那么连代码本身都失去了价值,更何论技巧存在这份代码中的意文呢?所以本书中的例子的确要用到许多“技巧 ,但我一方面希望读者能明白,这是语言内核已框架内核实现过程中必须的,另方面也希读者能从这些技巧中学习到它原本的技术和然而对于很多人来说,本书在讲述个完全不同的语言类型。在这种类型的语言中,本书所讲述的一切,都只不过是“正常的方法”;在其他类型的一些语言中,这些看起来就成了技巧。例如在Java Seri pt中要改变一个对象方法指向的代码非常容易, 并且是语言本身¥子的能力; 而在Delphi/C++中, 却成了“破环面向对象设计”的十正常手段。所以你最好能换一个角度来看待本书中讲述的“方法”,无论它对你产生多大的冲击,你应该先想到的是这些方法的价值,而不是它对于“你所认为的传统”的挑战,事实上,这些方法,在另些“同样传统”的语言类型中,已经存在了足够长久的时间—如同“方法”之与“对象”一样,原本就是那样“(至少看起来)自然而然”地存在于它所在的语言体系之语言特性的价值依粮于环境而得彰显、横行的螃蟹看起来古怪,但据说那是为了适应次地磁反转,螃蟹的成功在于适应了次反转,失败(我们是说导致它这样难看)之处,也技巧是不是一可行的选择,有没有不需要技巧的实现;本电子书是由电了工业出版社出版的《Java Seri pt语言精懒与编程实践》一书的迷你版本.木书的部分内容曾以电子文档的形式发布为(主要程序设计语言范型综论与概要》本电子书由作者周爱民先生亲白摘选编撰, 由Info Q中文网站独家在线发布。在此, 感C JavaScript语言精与编程实践) 这本书, 最初的名字基国(动态函数式语言精简与编因此, 事实上J Java Seri pt语言精与编程实践》书是假JavaScript语言之力, 讨论了在本电子迷你书中, 我摘引了(Java Seri pt语言精简与编程实践》书有关语言讨论的关本文主要有“命令式语言”、“函数式语言”和“动态语言”三个部分, 均精减白(Java Seri pt但本电子书不包拓该纸质书中的有关Java Seri pt语言的绝大部分内容, 而只是摘选了其中关于弟言范型的论述,井由此组织成文。故本电子书定名为《动态函数式语言精》。谢电子工业出版社、博文视点资讯有限公司(武汉分部)予以许可,程实践》的, 这才是我写那本书的原意, 确切地说, 我并非是想讨论Java Seri pt作为一种语言工具的用法或特性,我更多地足希单用种简洁的语言来讨论动态语言,函数式语言。而为了给这些语言范型以参照, 以及讲述多范型如何“杂”在起, 我也讨论了Java Seri pt中的命令式语言特性,我们常用的,主要的程序设计范型,而这也是该书难读的根源——很少有人会以门确切的语言来讨论多种语言范型, 尤其在使用Java Seri pt的开发者群体里, 深入了解该语言的本来就不多,研究语言特性的就更少了、键章节(主要在第二, 四、五章) , 从Java Seri pt无人的角度综论这些语言的产生发展, 以及特性的概要, 作为纯语言学范畴的讨论, 读者在本摘引中不需要过多地了解JavaScript, 也不必深究某种语言的细节,作参考文论来读,便是不错,语言精与编程实践》书的相应内容,本文最末个部分,对儿种语言作综述,孔之见而已,www.zzbaike.com本程由站长百利收集整理


《JavaScript动态函数式语言精髓_周爱民》目录

讲述语言的本质及其应用

动态函数式语言精髓

要有光...............3

语言...............4

分类法............4

世界需要一种什么样的语言?精简版·序..

这本书.....8

导读...9

命令式语言......10

函数式语言.......

动态语言..............

2、结构化的疑难.

4、更高层次的抽象:接口.....

5、再论语言的分类....

2、语法及作用域问题

3、变量作用域及生存周期问题

4、原型继承的基本原理与实质

5、原型继承的问题与维承方式的选择.......

1、函数式语言基础

1、从代码风格说起.....................

4、当运算符等义于某个函数.....

3、脚本系统的起源......

4、脚本只是一种表面的表现形式.....

2、为什么常见的语言不赞同连续求值......

3、函数式语言的渊源.......

2、函数式语言中的函数..

3、从运算式语言到函数式语言-

1、运算式语言

2、函数在运算式语言中的价值.

3、重新认识“函数”

4、函数式语言.....

1、动态语言概要.

1、动态数据类型的起源

2、动态执行系统的起源.

2、动态执行.............

3、重写.....

4、包装类,以及“一切都是对象”

5、关联数组:对象与数组的动态特性.....

6、值运算:类型转换的基础

计算机


python
AI人工智能
javascript
计算机网络/服务器
数据库技术
计算机F

考试教辅


考研考博
英语四六级

沪ICP备18046276号-5