• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Sheppard Y

            keep thinking keep coding.

            開始學習Common Lisp

            2016-07-11 日更新 
            此篇博客已經遷移到新博客,并做行文檢查和優(yōu)化排版:
            http://blog.clawz.me/2013/09/15/13-common-lisp/


            一、為何想學lisp

                ​最初了解lisp是從《黑客與畫家》里,里邊的黑客強烈推薦程序員用lisp,并有部分講《為什么lisp語言如此先進?》,書是阮一峰翻譯的,這節(jié)在他的博客也有節(jié)選:

                ​http://www.ruanyifeng.com/blog/2010/10/why_lisp_is_superior.html

                ​總結一下:

            a. 越近代的語言越像lisp;而當前最新潮的語言也只是實現了lisp作者在1958年的設想,因為lisp設計目的是數學理論演算而不是語言這種本質上的一種技術。技術會過時而數學不。今天最高級的主流語言,也只是剛剛接近lisp的水平。雖然已經接近,但還是沒有l(wèi)isp那么強大。

            b. 等等,其他不一一摘抄。

                ​其中一點提到,“一行l(wèi)isp代碼相當于20行C代碼”。lisp會縮短開發(fā)周期,而且還是c能做lisp所有事情的前提下。文中舉例說,如果你用其他語言跟別人lisp語言的公司競爭,同樣的功能你就比別人慢很久才能開發(fā)完,競爭就出于劣勢。

                ​其他在網絡上看到的lisp相關言論:

                ​起名為“格林斯潘第十定律”(Greenspun's Tenth Rule):“任何C或Fortran程序復雜到一定程度之后,都會包含一個臨時開發(fā)的、只有一半功能的、不完全符合規(guī)格的、到處都是bug的、運行速度很慢的Common Lisp實現。”

             

            二、學習過程中

                ​另外還有個原因,最近想了解函數式編程,想了解下支持分布式原語的erlang,先學哪個還是糾結了下的。 后來考慮到新到的項目中想設計成分布式擴展方便的服務器架構,就優(yōu)先學下erlang。先花幾天把《Erlang程序設計》給看完了,看的很激動,但是考慮到項目人員現狀及將來的維護,項目沒用erlang,用了node.js。

                之后又花幾天把許式偉他們寫的《Go語言編程》看完了。go語言確實不錯,以后可以考慮用這個寫個游戲服務器引擎什么的。本想立即就開動,但是項目屬于開始搭架子階段,需要思考的時間挺多,回家可以利用的時間不多,專心寫開源項目不現實。

                ​于是回家的時間先學Common Lisp(以下簡稱cl),現在正在看田春翻譯的《實用Common Lisp編程》,看到12.6映射。

                ​cl很多東西跟類c的語言差別就比較大了,看的進度還是挺慢的。看著看著,一邊驚嘆他強大的表現力,一邊有點害怕太龐大,以后實用起來不順利。

                ​如果找份cl的工作,國內大小公司估計都不大好找。除非能在一個高手云集的團隊里,大家又都喜歡cl,而且我們有話語權……

                ​所以將來cl在為了更好的思考編程之外,很可能只是用來寫些腳本或者自己的玩具什么的。近期的應用可能是生成javascript代碼。

                ​等cl學的不錯了,可以做些個人項目的快速開發(fā)……

                ​

            三、我了解Common Lisp一些資料

                ​建議一下書籍,按閱讀順序(在知乎看到的,別的地方推薦也大同小異):
            《Structure and Interpretation of Computer Programs》(SICP)可以啟發(fā)思想,尤其是函數式編程入門;
            《Practical Common Lisp》和《Land of Lisp》也適合初學者;
            《On Lisp》主要討論macro的使用;
            《Let over Lambda》在《On Lisp》基礎上更深入討論宏。

                 ​《On Lisp》和《Practical Common Lisp》(中譯為《實用Common Lisp編程》) 由田春翻譯完成。我個人先買了SICP,但是里邊是講Scheme,看了幾節(jié)怕到時學lisp會混亂,就轉先實用lisp這本了。

                ​另外我用的實現是Steel Bank Common Lisp。

             

             四、附上這段時間了解的函數式語言個人簡介

                ​這條自己的理解,純粹為了自己做個筆記。

                haskell貌似比較新,應用不多,別說是分布式,就是普通應用也不多。haskell是純函數式。而lisp不是純的,還可以以別的方式來編程。

                ​erlang倒是主打分布式。erlang內置了多臺機器之間的通訊原語,程序員只用關心業(yè)務邏輯就可以了。

                ​lisp主要是一種全新的看待軟件開發(fā)的視角。

                ​​go也支持閉包。

             

            posted on 2013-09-15 11:25 Sheppard Y 閱讀(1125) 評論(0)  編輯 收藏 引用 所屬分類: 其他語言

            <2013年9月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            導航

            統(tǒng)計

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業(yè)界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久亚洲精品中文字幕三区| 久久综合给久久狠狠97色| 狠狠色噜噜狠狠狠狠狠色综合久久| 狠狠色婷婷综合天天久久丁香 | 国内精品久久久久久久久| 亚洲欧美日韩精品久久| 天堂无码久久综合东京热| 久久婷婷五月综合成人D啪| 国产精品女同久久久久电影院| 久久精品国产91久久麻豆自制 | 狠狠色丁香婷婷久久综合五月| 日日狠狠久久偷偷色综合96蜜桃| 久久久久人妻一区二区三区| 久久精品国产亚洲AV无码麻豆| 九九热久久免费视频| 噜噜噜色噜噜噜久久| 国产成人精品久久一区二区三区av | 久久亚洲国产成人影院| 香蕉久久一区二区不卡无毒影院| 热99RE久久精品这里都是精品免费| 久久婷婷五月综合国产尤物app| 亚洲天堂久久精品| 影音先锋女人AV鲁色资源网久久| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久久久综合网久久| 伊人久久精品无码av一区| 久久久久久久久久免免费精品 | 久久精品国产亚洲AV蜜臀色欲| 久久噜噜电影你懂的| 亚洲中文字幕伊人久久无码 | 久久精品国产亚洲AV无码麻豆| 亚洲欧美一级久久精品| 国产精品99久久不卡| 国产成人久久激情91| av无码久久久久久不卡网站| 亚洲欧美日韩久久精品第一区| 色综合久久中文字幕综合网| 国产精品伊人久久伊人电影| 色综合久久久久| 久久成人18免费网站| 免费久久人人爽人人爽av|