华盛顿大学Programming Language Week1

要义
第一周主要需要完成的任务是明白这门课要讲什么。
这门课是要学习编程语言的基本概念,这门课不是要局限于任意一种编程语言,而是想要传达一种编程语言的思想。
在Funtional Programming中将使用一级函数和函数闭包等
课程目标
- 准确理解功能型编程(FP)和面向对象程序(OP)的内涵。
- 提升学习新的编程语言的能力
- 掌握特定的语言概念,使他们能够在陌生的外表下识别这些概念。
- 学会评价编程语言及其结构的威力和优雅性。
具体课程大致清单
-
语法vs语义vs习惯用语vs库vs工具。
-
ML 的基础语句(bindings,conditions,records,functions)
-
递归方法和递归类型
-
Benefits of no mutation
-
代数数据类型,模式匹配。
-
尾部递归(tail recursion)
-
高阶函数;闭合
-
词汇范围
-
currying
-
Syntactic sugar(语法糖)
-
Equivalence and effects
-
参数化多态性和容器类型
-
类型推理
-
抽象类型和模块
使用的工具
这门课使用的TextEditor(文本编辑器)是Emacs
Emacs(/ˈiːmæks/,源自Editor MACroS,宏编辑器),是一个文本编辑器家族,具有强大的可扩展性,在程序员和其他以技术工作为主的计算机用户中广受欢迎。最初由Richard Stallman于1975年在MIT协同盖伊·史提尔二世共同完成。这一创意的灵感来源于TECO宏编辑器TECMAC和TMACS,它们是由盖伊·史提尔二世、Dave Moon、Richard Greenblatt、Charles Frankston等人编写的宏文本编辑器。

使用的编程语言是ML
ML ("Meta Language") is a general-purpose functional programming language. It has roots in Lisp, and has been characterized as "Lisp with types".[citation needed] ML is a statically-scoped functional programming language like Scheme.
于其他的编程语言相比,ML更加注重Funtion就是方法,在后面的Funtional Programming中会很方便。
浙公网安备 33010602011771号