来进入这一系列课程的最后一 Part 啦! \(P1\) 我们介绍了 \(ML\),一种 static typing 的 functional language \(P2\) 我们介绍了 \(Racket\),一种 dynamic typing 的 functional language 回顾一下 函数式编程...
2023-03-14编程教程Programming,华盛顿,大学ML Versus Racket 同 函数编程模式 (with constructs that encourage a functional style) 不鼓励 mutation (但提供了支持 mutation 的 constructs),头等函数模式 (first-class functions and closures),即函数...
2023-03-10编程教程Programming,华盛顿,大学这次 Week 2 的作业比较难,任务目标是使用 \(racket\) 给一个虚拟语言 \(MUPL\) (made-up programming language) 写一个解释器 所以单独开个贴来好好分析一下 首先是 MUPL 语言的几个 semantic,已经通过 \(rack...
2023-03-09编程教程Programming,华盛顿,大学week 2 我们采用一种新的视角来对比 FP 与 OOP,即将问题分解 (decompose) 与实现 (implement) 的方式 OOP Versus Functional Decomposition 对 FP 而言,常见的分解 (decomposition) 方式为:将程序拆分成一个个...
2023-03-08编程教程Programming,华盛顿,大学整个系列课程的最后一小结! 介绍了之前在 interface 中所提到的 subtype 系统以及其与 ML 中 generics 的不同 introduction to subtyping 在之前的课堂中 (主要是 Part A),我们了解了 FP 中的静态类型,尤其是 ...
2023-03-07编程教程Programming,华盛顿,大学Datatype-programming in Racket without structs 在 ML 语言中,我们使用 datatype binding 来实现对 标签联合类型的构建:传送门 这是因为 ML 语言中的 list 中的元素类型是统一的 这里是一份经典的 ML 实现标...
2023-03-07编程教程Programming,华盛顿,大学