`
zuiyanwangyue
  • 浏览: 164979 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

读动态函数式语言精髓

阅读更多

一、看清语言的本质,而不是试图学会一门语言。

二、关于技巧的思考:技巧究竟是一种语言特性还是仅特定的版本所支持抑或根本就是一个BUG?技巧是否是唯一可行的选择,有没有不需要技巧的实现?技巧是为了实现功能而不是为了表现技巧而出现在代码中的。

三、有关命令式语言:其核心是通过算法改变内存(中的数据),实质是面向存储的编程。其发展迄今为止经历了两个阶段:结构化编程和面向对象编程。

四、结构化编程中的结构体抽象层次过低,由此带来的问题至少包括下述三个方面:(1)结构体与实体直接相关,并且将这种相关性直接呈现在使用者的面前,因此开发人员必须面临数据的具体含义与关系;(2)结构体的抽象更面向于数据存储形式的表达和算法实现的方式,脱离了具体使用环境和算法的结构缺乏通用性;(3)僵化的类型与僵化的逻辑并存,影响了业务逻辑的表达。而面向对象的语言很好地解决了上述三个问题,主要借助于以下手段:(1)提出更加细化的可见性设定,实现更好的数据封装性及数据管理;(2)运用继承来解决结构体的通用性问题;(3)运用多态性解决“强类型”与业务逻辑表达之间的冲突。

五、“对象”无疑是比“结构体”更高层次的数据抽象,但是它也仅是更高层次的数据抽象。它所基于的,依然是对结构的认可,而并不是以对算法的认可为前提的。正是因为它并没有突破“结构影响算法”的边界,所以我们才在面向对象系统中看到一种情况:如果对象基类的抽象不合理,或者继承树设计的不合理,那么在这个对象系统上的应用开发将会束手束脚,接下来对继承体系的重构又会影响到业务逻辑(算法)的实现。而与此相反,接口(Interface)的观点是,只暴露数据体的逻辑行为能力而不暴露这种能力的实现方法和基于的数据特性,它首次从系统中剥离了“数据”的概念,进而把与数据有关的关系也清理了出去(例如对象引用,有人认为对象之间的引用是面向对象体系的灾难之源)。正因为接口突破了“结构影响算法”的边界,所以它变成了现代OOP语言中不可或缺的一部分,就此成为面向对象编程方法的一种突破。

六、原型继承的基本原理与实质。对象系统的继承特性有三种实现方案:基于类(class-based)、基于原型(prototype-based)和基于元类(metaclass-based),其中Javascript是使用原型继承来实现对象系统的。所谓的原型其实也是一个对象实例,原型的含义是指:如果构造器有一个原型对象A,那么由该构造器创建的实例(Instance)都必然复制自A,这里需要认识到:由于实例复制自对象A,所以实例必然继承了A的所有属性、方法和其它性质,由此可见原型继承的实质是复制。

分享到:
评论

相关推荐

    《JavaScript语言精髓与编程实践》精选版--动态函数式语言精粹

    《JavaScript语言精髓与编程实践》这本书,最初的名字是叫《动态函数式语言精髓与编程实践》,这是作者写本书的原意。确切地说,作者并非是想讨论JavaScript作为一种语言工具的用法或特性,更多地是希望用一种简洁的...

    books 动态函数式语言精髓

    NULL 博文链接:https://goyourauntie.iteye.com/blog/1179204

    动态函数式语言精髓 与编程实践

    不仅仅适用初学者,书中有很多年编程积累下来总结的经验,可以授业,解惑

    《JavaScript语言精髓与编程实践》精选版

    《JavaScript语言精髓与编程实践》这本书,最初的名字是叫《动态函数式语言精髓与编程实践》,这是作者写本书的原意。确切地说,作者并非是想讨论JavaScript作为一种语言工具的用法或特性,更多地是希望用一种简洁的...

    JavaScript语言精髓与编程实践

    《JAVASCRIPT语言精髓与编程实践》讲述了JavaScript的语言实现与扩展,主要包括以下三个方面的内容:(1)动态、函数式语言,以及其它语言特性在JavaScript的表现与应用;(2)如何用动态函数式语言的特性来扩展...

    Scala函数式编程

    所以,当你读完本书,做完习题后,虽然你的应用开发能力并不会直接提升,但你会体会到构建函数式语言和框架时的难点和取舍,从而增进你的框架开发和语言设计的能力。  ——ThoughtWorks Lead Consultant 杨博  这...

    函数式编程语言和MapReduce

    该文档简要介绍了函数式编程语言和MapReduce的相关知识。

    微软最新函数式编程语言F#教程

    函数式编程语言F# 英文版PDF介绍文档。

    Scala函数式编程.pdf

    Scala是一种能很好支持函数式编程的新兴JVM语言。《Scala函数式编程》是针对希望学习FP并将它应用于日常编码中的程序员而写的,内容包括:函数式编程的概念;函数式编程相关的各种“为什么”和“怎么做”;如何编写...

    函数式编程语言发展及应用_王学瑞.pdf

    函数式编程语言发展及应用_王学瑞.pdf

    基于Python的函数式并行编程语言_概率密度泛函_python语义特征_python_

    建立并行编程语言的特征序列分布模型,采用连续概率密度泛函分析方法构建并行编程语言特征分布函数式,通过 Python 进行函数式并行编程语言的语义分割,提取函数式并行编程语言的语义关联特征量,根据语义关联性进行...

    函数式编程另类指南

    的确,关于函数式编程的文章和论文难于理解,但他们本来不必这么晦涩。这一知识隔阂的形成完全是历史原因。函数式编程的概念本身并不困难。这篇文章可以作为“简易的函数式编程导引”。是一座从我们命令式...

    JavaScript ES6函数式编程入门经典

    《JavaScriptES6函数式编程入门经典》使用JavaScriptES6带你学习函数式编程。你将学习柯里化、偏函数、高阶函数以及Monad等概念。  目前,编程语言已经将焦点从对象转移到函数。JavaScript支持函数式编程,并允许...

    javaScript函数式编程

    JavaScript 是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。 全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量...

    JS 函数式编程指南

    我们将使用 JavaScript 这个世界上最流行的函数式编程语言来讲述这一主题。有人可能会觉得选择 JavaScript 并不明智,因为当前的主流观点认为它是一门命令式(imperative)的语言,并不适合用来讲函数式。但我认为,...

    论文研究-函数式语言泛型特性的研究与实现.pdf

    在函数式语言上进行泛型的研究与应用,Haskell语言是函数式语言中较为经典的一种语言,它的计算模型简单,语法清晰,易于编写,易于维护,拥有很大的发展空间。利用一些规则对Haskell语言的语法进行相关扩展,同时...

    [本科毕业设计] 简单的函数式语言实现(编译器+解释器).zip

    本科毕业设计

Global site tag (gtag.js) - Google Analytics