培训笔记:课程一
开场:
- 思维定势造成的障碍,推到从来
- 一以贯之,敏变应需:如何做到?
- 以心转境(哲理、数理、技理)
- 专注!!!!!
要学什么:
学习List,要List干嘛?
两个,第一C;第二个SCHEME;
需要精读的书
SICP ,《计算机程序的结构与解析》
DRAGON,《编译原理》
HACKERDOM(黑客需要技能,层层深入)
1、计算的本质:搞懂这个最好用(SCHEME),RACKET就是该语言是实现;
2、系统程序设计语言:C/C++;
3、计算机的体系机构:汇编;
4、数据结构与算法;
5、计算机程序的结构与解析:设计一个解析器;
6、编译原理;DRAGON(呼应计算的本质)
7、电路原理;从数学角度对物理进行抽象;
8、信号的分析与综合:DA AD Z变换;
9、硬件描述语言:HDL(呼应6段,DRAGON);
学习方法(一以贯之):
PM:
Pan-system
Methodology
PM3
3、泛关系:万物充分、万事关系;泛转化:转化形式很多,研究事物之间相互联系、相互推导、相互促进、相互制约;泛对称:广义对程性,如a=b,a-b=0;可计算的函数也是对称性;
PM5
建模:
5、可观察、充分、客观性建模;
PM6:
6、方法论、数学、逻辑、系统科学、本体论/存在论、价值观(这6点是PM356中的6统一);
PM123:
1、PM1:6统一的背景、刻度论的工具(测度、尺度);
2、PM2:形式语言、可能世界的逻辑(作任何事情都是在可能逻辑里面的,不要逃离逻辑,例如做永动机);
3、PM3:1、集合论;2、图论;3、矩阵论;
培训笔记:课程二
计算的本质:
六句话:
识局整、判形影、辩异同、排次序、显运转、度生克
形影关系:
点是形,在坐标轴中分解为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
函数是低等对象:1、可命名;2、可返回;3、可传递;4、可组新的exp
可返回
((lambda (g)
(g 3) f)
可以用closure(闭包)模仿OOP
例如:case-lambda
栈
stack
stack frame
1、incoming
2、returned value
3、local state
4、intermediate
5、func link
6、data link
7、stored machine
C语言
没有动态链和数据链,lips和c不同,运行时栈框结构是不动的,c是针对堆栈,而lips是针对结构表,才会有链条。
高阶函数
EVAL
(eval express env)
ALLPY
(apply + `(1 2 3 4))
Map
无副作用
For-each
具有副作用