Ruby之第一周 Overview of Part C Concepts

我们简要介绍一下,在Part A和B中涉及到的,并且和Part C部分有关联的知识点。


在ML中,我们学习了函数式编程的基础部分,静态类型模式匹配。我们学习了第一等公民函数闭包。我们学习了类型推导模块两个模块是否相同。

在Part B中,我们学习了动态函数式编程。动态语言的关键特性是delay evaluation。我们在Racket解释器的基础上,通过eval exp实现了自己的一个小型的语言。

#add 学习函数式编程的关键是熟悉语言的数据结构递归解释器

在Ruby中,我们将会学习到非常类似于闭包的blocks。并且将会学习到比Racket更具有动态特性的一些features。接着我们将聚焦于面向对象的部分,类和方法,以及Ruby程序是如何将数据封装在对象中的,对象中具有states和能够调用的methods。在这里,我们使用方法来代替函数。Ruby是个纯面向对象的语言,所有的值都指代的是对象。

在Part C的第二部分中,我们将会学习到函数式编程和面向对象编程分别是如何对问题进行拆解的(拆解为pieces)。我们会发现这两者是相反的。虽然它们是相反的,但并不代表他们是不同的。然后我们会学习到Ruby的mixins,我们称之为模块。我们在面向对象编程中被称作是双调度,这将成为编程任务的关键重点

在第三周我们将回到静态类型中。我们将会重点关注子类型(sub-types)的核心概念,这对于面向对象的静态编程语言是格外重要的。与泛型(generics)相比,我们在ML中学习到了多态性。???

明天早上的第一个任务。

我们需要把核心概念聚集到一起,并进行对比和比较。第一周,我们主要学习OOP的特性。在第二三周,我们将重点关注对比和比较。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • #2017_9_11 20:24新添加 Part A&B是学习Part C的基础。 challenging and...
    爱跑步的coder阅读 1,124评论 0 0
  • Swift的编程范式 编程范式是程序语言背后的思想。代表了程序语言的设计者认为程序应该如何被构建和执行。常见的编程...
    Bobby0322阅读 7,402评论 4 43
  • 一、异同对比选择1、Python和ruby的相同点: * 都强调语法简单,都具有更一般的表达方式。python是缩...
    沃伦盖茨阅读 9,626评论 2 24
  • 无聊的我问自己,谁无聊?心,脑袋,还是脑袋里的血管? 最后答案是:都不是! 我tmd的做了身体的傀儡,习惯的奴隶。...
    关中人阅读 1,469评论 0 1
  • 那天李总说他家里爷爷去世了,我的思绪一下子就回到13爷爷去世的时候 。 13年2月27日,那时我还在学校,那天一大...
    Tina914阅读 3,169评论 3 1