? 昨天的第一節(jié)公開課給所有正在奮斗c和java的小組成員上了一節(jié)引人入勝的黑科技之課械念。從lisp開始头朱,或許從此我就深深的愛上了Scheme這種充滿括號的奇特語言。
? ? 因為非計算機專業(yè)的學生龄减,所以對c的印象不是那么深刻项钮,在處理問題采用方法的時候,可能就會照貓畫虎的采用拿來主義思維然后再原有的基礎上理解希停,精通然后就是所謂的我學過烁巫,我敲過,我就會了宠能!然而事實真的如此么亚隙? 我的確懂了不少東西,在我的硬盤里也有不少代碼靜靜地躺在那里供我閱讀违崇,供我修改阿弃,然而我只是在別人提供的語法基礎上采用他的方法來解決問題,那原理呢羞延?
? ?于是就有一個引人入勝的問題:什么叫做編程渣淳。看到此時可能就會有人用硬盤里的代碼告訴直接告訴我肴楷,這就是編程水由!當然我理解每個程序員會有那么多代碼要維護要忙荠呐,但是赛蔫,問題是,當我們真正去忙于編程的時候泥张,有沒有想過呵恢,編程到底是什么?
? ?老師從一個很引人入勝的角度開始講媚创,就是我們要告訴計算機怎么去解決問題渗钉!
? 就好像一個小孩子從懵懂開始,計算機是混沌的,他不認識1是1 也不知道怎么去表達世間萬物的稱謂鳄橘,所以我們會告訴他說這是什么声离,那是什么,然后慢慢的教授一切他所需要的一切知識和技能瘫怜。
? ? ?那么我覺得對于初識編程的人來講术徊,lisp再適合不過。
? ?在接觸lisp的兩天里鲸湃,接觸了很多括號赠涮。這些括號會告訴計算機什么是什么,什么要怎樣做的問題暗挑。然后唯一的感觸就是遞歸的使用頻繁笋除。這個語言就是強迫你在使用遞歸,而不是形如for while do while之類的循環(huán)炸裆。我覺得這樣做的編程哲學在于垃它,一個點重復利用就成為了一個線,一條線重復利用就成為了一個面烹看。那么一個小過程嗤瞎,被另外一個小過程利用,或者被自身遞歸引用听系,那么就跟道家所講的贝奇,一生二,二生萬物的思想靠胜,在某種意義上掉瞳,是相同的。然而浪漠,lisp整個體系中不乏這樣的高明智慧陕习,比如 括號map形的運算形式就是樹的應用,比如址愿,原有的可憐的要少的關鍵字卻能造成不菲的有價值的代碼该镣,這樣的例子不勝枚舉。
? ? 在道哥的專著 黑客傳說天生我材中响谓,主人公就是學了lisp才在以后的exp編程中游刃有余损合,而真正的事實是,lisp不會對以后語言學習產生多大的影響娘纷,而真正影響的是嫁审,你編程的思維方式。
? ? ? 如果說編程是用錘子來雕塑赖晶,那么編程語言就是那個錘子律适,然而錘子的本質上并無差別。而我想,lisp是那個最奇特的錘子捂贿,它教會你怎么去砸纠修,這大概就是lisp的真諦。
題外話:lisp原先用于人工智能開發(fā)(可能現(xiàn)在也在用)厂僧,我覺得lisp最核心的部分在于過程之間的嵌套分瘾,那么想象一下,如果一個電腦吁系,有一天也會用嵌套來生成一個更為強大的過程德召,那么他會不會有人類相似的學習能力,以供自身的進化汽纤。前段的時間的Alphgo與李在石的圍棋交鋒中上岗,據(jù)說alphgo從研究對手的棋局中get到打敗對手的方法。所以蕴坪,強大的根源不在于肴掷,原有的庫函數(shù)基礎,而是你本身的衍生能力的強大背传。當然這話呆瞻,在人類科學中,也同樣適用径玖。
以上內容如果有錯誤觀點請與作者指出痴脾,以便作者即時更正,謝謝梳星!