读《编程的数学原理》
读书目标
计算机程序其实就是一个形式系统
算法就是数学
- 掌握编程范式
- 组合与抽象
- 集合与逻辑
- 函数与关系
- 组合与时序
- 数理逻辑五个部分:逻辑演算、证明论、公理集合论、递归论、模型论
第一章自然数
- 几何原本
- 公理化系统
- 皮亚诺公理(Peano Axioms)
- 归纳公理
- 皮亚诺算数系统
- 自然数与计算机程序
- 公理化的加法乘法定理
- 递归函数
- 累加与阶乘
- 自然数同构
- 自然数同构于数据结构
第二章递归
- 欧几里得算法
- λ \lambda λ演算
- 计算模型
- 图灵机
- 可计算问题
- 递归函数
- 元数学:对计算本身进行形式化
- 函数与函数的值
- 表达式化简
- 函数的“科里化”(Currying):认为所有的函数都只接受一个参数
- λ \lambda λ表达式包括
<表达式> = <常量> 内置的常量,数字、布尔值等
| <变量> 变量名
| <表达式> <表达式> 应用
| λ \lambda λ<变量> . <表达式> λ \lambda λ抽象
-
λ \lambda λ抽象
-
λ \lambda λ变换规则
-
自由变量与绑定
-
环境与上下文
-
α \alpha α变换,变量名替换
-
β \beta