第一門編程語言就是 Haskell 之流是怎樣一種體驗?
03-01
聽說 imperative programming 會污染人的大腦,要是先學這個,整個人就不幹凈了。很想知道乾淨的大腦是什麼樣子的。
先學Haskell到Monad然後正在學C。兩個都是自學。感覺先學哪一個都污染了大腦。
在學編程之前我學過一點最最基本的遞歸論,圖靈機、URM、遞歸函數、lambda calculus、組合子、Post系統這幾個等價的模型都接觸過。作為一個受不了在證明中直接用邱奇圖靈論題的處女座,深深覺得遞歸論初期的那些圖森破定理,URM好想但是遞歸函數寫的證明漂亮。然後根據個人觀察,functional更像是遞歸函數,imperative更像是URM,遂選了Haskell。
一開始學Haskell覺得,「卧槽,好簡單,初始函數有這麼多可以用」以及「syntax sugar真是太不爽了」,直到我遇到Monad(「卧槽,我竟然看見了函子」)……
後來為了看懂計算機系的報告,開始學C,感覺是「卧槽,初始命令竟然有這麼多」……受此污染,我覺得我給遞歸函數編碼和用圖靈機一步一步挪的日子一去不復返了……沒有做到 Thinking in HASKELL 就沒啥。。否則污到些其他語言習慣性使用 const 而不用循環體。。
本校 CS 第一學期入門課可以選三種語言:java C scheme, 第二學期學數據結構的時候就只有 java 可以用了,題主你感受一下學 scheme 入門的童鞋們心中飛奔的草泥馬。
說的就是我們ANU啊,題主你可以去體驗下:https://cs.anu.edu.au/courses/comp1100/
高一時候已經被Pascal污染過大腦了,用不純潔的眼光在大一學了Haskell,哈哈哈。挺開心的。
話說拿Haskell當入門語言的是不是只有ANU了......世界本身就是不幹凈的,怎麼弄乾凈都會臟。
用這種入門,有點匪夷所思......以後還怎麼學C,JAVA這種語言啊。
體驗就是以為所有編程語言都是這樣的.
思想都是有毒的,多了就習慣了。
推薦閱讀:
※求余和取模
※html5可以做什麼?HTML5市場需求有哪些?
※如何實現feed流
※React Native開源項目如何運行?
※C語言基礎:函數的聲明與定義