培训笔记:课程一 算法
开场:express
要学什么:编程
学习List,要List干吗?数据结构
两个,第一C;第二个SCHEME;闭包
须要精读的书app
SICP ,《计算机程序的结构与解析》函数式编程
DRAGON,《编译原理》函数
HACKERDOM(黑客须要技能,层层深刻)工具
一、计算的本质:搞懂这个最好用(SCHEME),RACKET就是该语言是实现;学习
二、系统程序设计语言:C/C++;
三、计算机的体系机构:汇编;
四、数据结构与算法;
五、计算机程序的结构与解析:设计一个解析器;
六、编译原理;DRAGON(呼应计算的本质)
七、电路原理;从数学角度对物理进行抽象;
八、信号的分析与综合:DA AD Z变换;
九、硬件描述语言:HDL(呼应6段,DRAGON);
学习方法(一以贯之):
PM:
Pan-system
Methodology
PM3
三、泛关系:万物充分、万事关系;泛转化:转化形式不少,研究事物之间相互联系、相互推导、相互促进、相互制约;泛对称:广义对程性,如a=b,a-b=0;可计算的函数也是对称性;
PM5
建模:
五、可观察、充分、客观性建模;
PM6:
六、方法论、数学、逻辑、系统科学、本体论/存在论、价值观(这6点是PM356中的6统一);
PM123:
一、PM1:6统一的背景、刻度论的工具(测度、尺度);
二、PM2:形式语言、可能世界的逻辑(做任何事情都是在可能逻辑里面的,不要逃离逻辑,例如作永动机);
三、PM3:一、集合论;二、图论;三、矩阵论;
培训笔记:课程二
计算的本质:
六句话:
识局整、判形影、辩异同、排次序、显运转、度生克
形影关系:
点是形,在坐标轴中分解为x,y就是影;
集合
元素与集合:隶属关系(区别与识局整:分清楚总体和局部的关系)
集合的运算;
学会从集合的语言角度看待世界的关系表;
偶对关系怎么作?
(cons 1 2)
->(1,2)
利用集合的包含关系作,去模拟序
列表用集合的嵌套去作;
把两个不相干的作成关系,转化;叶子与锯子;
等价关系,商化系统
等价聚类、离散数据、
等价:
定义-> 自反关系(刻画存在性):对称关系(a是b的配偶、b也是a的配偶):传递关系
等价关系才有等价聚类;
排序:
全序集合、偏序集合、良序集合(有头元素的well order)
代码
(cons 1 2)
(define p (cons 1 2))
(car p)
Lisp 符号表:define 函数就是在符号表加入函数:如
p |
`(1.2) |
|
|
若是再运行:(define p (cons 3 4))
P(会被gc回收) |
`(1.2) |
p |
`(3.4) |
若是用set : (set p 100)
则变为:
P(会被gc回收) |
`(1.2) |
p |
100 |
而函数式编程是没有反作用的,不会设置值
点集拓扑学 - >lambda演算 ->
点集拓扑学
ICEB:internal closure external boundary
闭包(closure);
拓扑空间在必定状况下会变成度量空间
培训笔记:课程三
函数是一等公民
概念
函数式编程:Immutable Pure function State Concurrency Component Testing Deploy
函数是低等对象:一、可命名;二、可返回;三、可传递;四、可组新的exp
可返回
((lambda (g)
(g 3) f)
能够用closure(闭包)模仿OOP
例如:case-lambda
栈
stack
stack frame
一、incoming
二、returned value
三、local state
四、intermediate
五、func link
六、data link
七、stored machine
C语言
没有动态链和数据链,lips和c不一样,运行时栈框结构是不动的,c是针对堆栈,而lips是针对结构表,才会有链条。
高阶函数
EVAL
(eval express env)
ALLPY
(apply + `(1 2 3 4))
Map
无反作用
For-each
具备反作用