聽從某本書的教誨(應該是code complete吧大概),每年應該學一門新語言以便開闊視野,即使是常年靠寫c**吃飯的,也可以把別家的優點吸收進c**裡得到好處。建議是不錯,但實踐起來太難了。
去年我學的是python,囫圇吞棗的學了兩天也沒震撼到我的思維,感覺也就是類庫比較多用著會順手點吧,總之就是氣場不合。我想要的效果是那種看完後大發感慨「原來還可以這麼思維」,而不是「原來已經有現成庫了」,那沒意義。
然後今年就開始學haskell。也算是機緣巧合吧,其實我原計畫是學erlang的,上dangdang網買erlang教程,訂單下了兩個月也沒收到,一怒之下取消了轉而去買real world haskell,因為有貨(攤手)。買之前先簡單的了解了下haskell的基本面貌,看到這個qsort**:
qsort =
qsort (x:xs)
=qsort (filter (
<
x) xs)
++[x]
++qsort (filter (
>=
x) xs)
居然看懂了!好簡潔,而且和c語言的思維模型截然不同 基本就是把問題描述了一遍,結果就出來了。我想要的就是這個。
後來看到高階函式和monad這一章的時候有點吃不消了 ,感覺完全沒有fp的基礎確實有點吃力,就又去買了sicp看。非常有意思的一本書,完全不枯燥,前三章難度不大迅速看完,看到4,5章的時候又有點吃不消了,理論基礎太差,於是下lambda演算的**看,看的死去活來,現在還在努力消化中。
感覺學haskell收穫還是不小的,比去年看python好多了 ,但是要在一年內學完實在是太難了,我覺得今年能把lambda演算證明一遍,然後把sicp過一遍就算不錯的了,更不用說深入理解haskell。難道每年一門新語言的意思只是說「了解」而不是「深入理解」?
最後貼一段自己寫的求素數的haskell**
1filterlist::integral a
=>
[a]->
[a]2
filterlist (x:xs)
=let filterfirst
=[ a |a
<-
xs, a `mod` x /=0
] in
3[x]
++filterlist filterfirst
4primes :: int
->
[int]
5primes 0=
6primes 1=
[2]7
primes n =2
: take (n-1
) (filterlist [3,
5..])
把問題描述完了,這個問題也就解決了。
英語,學的是一種感覺
我不知道英語曾經讓多少人頭破血流,有多少人中考 高考因為英語沒考好而錯過更好的學校,還有多少更悲催的是上大學英語還掛科,尤其是學計算機的,而且更有些人因為這是csdn這裡就特指程式設計師工作之後還得報班學英語,英語,毀了多少人啊。其實我也有悲慘的經歷。從小到大英語是我用時最多的學科,甚至可是和語文加...
程式語言是一種邏輯語言(形式語言)
程式語言是表達邏輯推演的語言,是邏輯語言的乙個變種 電腦程式是建立在計算機硬體和一系列規則 協議 規範 演算法基礎之上的 形式語言理論主要研究的是內部結構模式這類語言的純粹的語法領域。形式語言理論是從語言學衍生而來,作為一種理解自然語言的句法規律。在電腦科學中,形式語言通常作為定義程式語言和語法的基...
語是一種非常低階的語言
1 我的深刻體會 日語是一種低階語言 日語是一種非常低階的語言。我來日本好多年了,在日本時間越長,越覺得日語低階。日語大概只有120種發音,而漢語有2000多種發音。同樣使用漢字,漢語可以做到乙個字乙個發音,而日語則只能用2個發音或3個發音來表示乙個漢字。正因為這樣,同樣的內容,用漢語表達所用的時間...