培訓筆記:課程一 算法
開場: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
具備反作用