摘要: @ Subtyping From the Beginning 需要一种包含可修改fields的records,并且具有type system,支持subtyping的语言。我们学过的多种语言都不符合这种要求,因此需要我们自定义一种语法(假定一种语言语法)。 根据上述语法规则,下面的程序(类似子类应用 阅读全文
posted @ 2022-09-14 20:59 自闭火柴的玩具熊 阅读(77) 评论(0) 推荐(0) 编辑
摘要: @ OOP Versus Functional Decomposition 面向对象与函数式(或过程式)编程的分解对比 例子:不同的变量和操作构成了二维矩阵。 面向对象和函数式的思维方式不同。 函数式编程的做法:通过函数填充每一列 面向对象编程:通过类填充每一行 对Ruby而言: 对Java而言: 阅读全文
posted @ 2022-09-14 20:51 自闭火柴的玩具熊 阅读(102) 评论(0) 推荐(0) 编辑
摘要: @ Introduction to Ruby 终于来到了我们比较熟悉的领域,OOP 我们关注的Ruby的特性,最重要的是“纯面向对象语言”,基于类Class-based,动态类型。 我们不关注的部分: 特性对比: 例子: class Hello def my_first_method puts "H 阅读全文
posted @ 2022-09-14 20:49 自闭火柴的玩具熊 阅读(107) 评论(0) 推荐(0) 编辑
摘要: @ ML Versus Racket 本章主要比较静态类型与动态类型语言的差别,基本上就是编程语言哲学了,挺抽象的,学起来还是需要一些自主思考。先比较ML和Racket。最大的区别是有无type system(不过Racket有Typed Racket,但不在我们课程范围内) 从双方的视角来看ML或 阅读全文
posted @ 2022-09-14 20:46 自闭火柴的玩具熊 阅读(99) 评论(0) 推荐(0) 编辑
摘要: @ Datatype-Programming in Racket Without Structs Racket没有提供类似ML的datatype来自定义one-of 类型,但由于它是动态类型语言,所以能够通过混合各种类型的值来实现这一点,不需要datatype ML中用datatype来包装基础类型 阅读全文
posted @ 2022-09-14 20:44 自闭火柴的玩具熊 阅读(124) 评论(0) 推荐(0) 编辑
摘要: @ Overview of Part B 回顾Part A的ML内容 简单介绍Part B的内容, 主要是Racket的使用 Racket 介绍与安装 下面是来自百度百科的介绍: Racket源自著名的专家型语言PLT Scheme,同时又是Lisp语言的一个分支。它适用于从脚本Script到应用程 阅读全文
posted @ 2022-09-14 20:39 自闭火柴的玩具熊 阅读(672) 评论(0) 推荐(0) 编辑
摘要: @ Week5 Introduction 第五周内容的简单导引 What is Type Inference 关于type-checking。ML属于静态类型语言(虽然在编写代码时并不要求显式标出变量类型),在编译时会判断变量类型。 所以ML语言其实是一种隐含类型(Implicitly typed) 阅读全文
posted @ 2022-09-14 20:35 自闭火柴的玩具熊 阅读(115) 评论(0) 推荐(0) 编辑
摘要: @ Introduction to First-Class Functions 函数是一等公民 前几周的课程虽然也在接触函数式编程的一些表达方式,但本周正式进入函数式编程的主题 函数作为一等公民(一等函数),本身就是一个值(fn类型),可以作为其他函数(高等函数)的参数、返回结果、tuple的元素、 阅读全文
posted @ 2022-09-14 20:32 自闭火柴的玩具熊 阅读(162) 评论(0) 推荐(0) 编辑
摘要: @ Building Compound Types Each of:例如三维空间的x、y、z坐标,一个人的first和last name One of:例如今天的天气(sunny、partly cloudy、rainy ...),打印机的状态(正在打印、等待打印...) SML中的building- 阅读全文
posted @ 2022-09-14 20:29 自闭火柴的玩具熊 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 首先简单介绍使用的SML语言,参考维基百科和百度百科: ML(Meta Language:元语言)是由爱丁堡大学的Robin Milner及他人在二十世纪七十年代晚期开发的一个函数式、指令式的通用的编程语言,它著称于使用了多态的Hindley–Milner类型推论。ML能自动的指定多数表达式的类型, 阅读全文
posted @ 2022-05-09 23:25 自闭火柴的玩具熊 阅读(936) 评论(0) 推荐(1) 编辑