把《effective java》讀完了還是感覺差了很多基礎(chǔ)遭笋,恩澤大神推薦了這本《sicp》,看心情做筆記吧。
The acts of the mind, wherein it exerts its power over simple ideas, are chiefly these three: 1. Combining several simple ideas into one compound one, and thus all complex ideas are made. 2. The second is bringing two ideas, whether simple or complex, together, and setting them by one another so as to take a view of them at once, without uniting them into one, by which it gets all its ideas of relations. 3. The third is separating them from all other ideas that accompany them in their real existence: this is called abstraction, and thus all its general ideas are made. John Locke, An Essay Concerning Human Understanding(1690)
20150515
看完高性能mysql, 繼續(xù)讀sicp~ 今天周一,這周末開始.
數(shù)學(xué)為精確處理"是什么"提供了一種框架,而計(jì)算則為精確處理"怎樣做"的概念提供了一種框架.
PS:感覺剛開始一直在聊哲學(xué)問題..
第一章 構(gòu)造過程抽象
正則序求值:完全展開而后歸約的求職模型
應(yīng)用序求值:先求值而后應(yīng)用,解釋器里實(shí)際使用的是這個(gè),部分原因在于能避免對(duì)于表達(dá)式的重復(fù)求值.
以我為例,我急需 GTD 的工具,而 Emacs 的 Org-mode 是同類軟件中最好的(沒有之一). 用 Org-mode 大大節(jié)省了時(shí)間后,我對(duì)Emacs愛屋及烏,興趣高漲了100倍.
反面例子是很多人以啃Lisp教程開始他們的Emacs之旅,堅(jiān)持下來的人寥寥無幾.
;;下了spacemacs感覺確實(shí)很難上手,很多快捷鍵都跟原生不一樣.
20170529
看完第一章,感覺就是最重要的還是算法,什么牛頓迭代,平均阻尼,如果你數(shù)學(xué)好,你就能寫出低計(jì)算復(fù)雜度的代碼. 因?yàn)閷?duì)emcas還不熟,所以沒有寫代碼,單純的看(這樣不好). 還有個(gè)收獲就是明白了時(shí)間復(fù)雜度O(n)指的是計(jì)算步驟長度,計(jì)算步驟越短,時(shí)間復(fù)雜度越低,一下次頓悟了.空間復(fù)雜度,指的是每次步驟中,最長的步驟長度多少.
在面向?qū)ο缶幊讨斜ス叮容^重要的一個(gè)概念就是,一個(gè)類中有很多狀態(tài)狼渊,而它們是隨時(shí)間而改變的箱熬。這些狀態(tài)的改變,可以看作是由時(shí)間所構(gòu)成的函數(shù)狈邑。由此我們可以想到城须,為什么不把每個(gè)改變放到一個(gè)流中呢?然后對(duì)這個(gè)流進(jìn)行處理米苹。下面那篇文章對(duì)流編程解釋得比較好.
20170603
lisp的stream跟java的stream是一回事嗎,看不懂.其實(shí)我對(duì)什么是惰性求值,函數(shù)式編程也不懂,阮一峰的<<函數(shù)式編程初探>>寫的還不錯(cuò).
http://www.ruanyifeng.com/blog/2012/04/functional_programming.html
http://blog.csdn.net/jiajiayouba/article/details/49983325 我們來看個(gè)例子糕伐,我們?cè)谶@里舉一個(gè)求x的n次方的例子,我們用傳統(tǒng)的命令式編程來寫一下:
def expr(x,n):
result = 1
for i in range(1,n+1):
result = result * x
return result
if __name__ == '__main__':
print(expr(2,5))
這里蘸嘶,我們一直在對(duì)result變量賦值良瞧,但是我們知道,在函數(shù)式編程中的變量是具有不變性的训唱,那么我們?yōu)榱吮3謗esult的狀態(tài)褥蚯,就需要將result作為函數(shù)參數(shù)來傳遞以保持狀態(tài):
def expr(num,n):
if n==0:
return 1
return num*expr(num,n-1)
if __name__ == '__main__':
print(expr(2,5))
呦,這不是遞歸么雪情!