資料介紹
本書適用于那些想更上一層樓的 Lisp 程序員。書中假設讀者已經初步了解 Lisp,但不要求有豐富的編程經驗。最初幾章里會重溫很多基礎知識。我希望這些章節也會讓有經驗的 Lisp 程序員感興趣,因為它們以嶄新的視角展示了熟知的主題。通常很難一語道清一門編程語言的精髓,但 John Foderato 的話已經很貼切了: ? Lisp 是一門可編程的編程語言。(Lisp is a programmable programming language.) 這難免以偏概全,但這種讓 Lisp 隨心而變的能力,在很大程度上正是 Lisp 專家和新手的不同之處。在自上而下,把程序逐漸具體化,用編程語言實現設計的同時,資深的 Lisp 程序員也實踐著自底向上的方法,他們通過創建語言來描述程序的行為。本書教授自底向上編寫程序的方法,因為這是 Lisp 與生俱來的強項。
?
隨著軟件復雜度的增長,自底向上設計的重要性也日益提高。今天的程序可能不得不面對極其復雜甚至開放式的需求。在這種情況下,傳統的自上而下方法有時會失效。一種新的編程風格應運而生,它和當前大部分計算機科學課程的思路截然不同: 一個自底向上的程序由一系列的層寫成,每一層都作為更高一層的編程語言。X Window 和 TEX 就是這種程序設計風格的典范。本書有兩層主題: 首先,對以自底向上的方法編制的程序來說,Lisp 語言是不二之選,反過來,編寫 Lisp 程序的話,采用自底向上的編程風格也是理所當然的。因此《On Lisp》將吸引兩類讀者。對于那些有興趣編寫可擴展程序的人,本書將告訴你如果有了合適的語言,你能做些什么。對于 Lisp 程序員來說,本書提供了第一手的實踐指南,指引他們把 Lisp 的優勢發揮到極致。本書選用現在的這個書名是為了強調自底向上編程對于 Lisp 的重要性。你不再僅僅是用 Lisp 編寫程序,在 Lisp 之上 (On Lisp),你可以構造自己的語言,然后再用這個語言來寫程序。盡管用任何語言都可以寫出自底向上風格的程序,但 Lisp 對于這種編程風格來說是最自然的載體。在 Lisp 里,自底向上的設計并不是那種僅為少見的大型程序或者高難程序服務的專門技術。任何規模的程序都可以在一定程度上以這種方式編寫。Lisp 從一開始就被設計成可擴展的語言。這種語言本身基本上就是一個 Lisp 函數的集合,這些函數和你自己定義的沒有本質區別。更進一步,Lisp 函數可以表達成列表,而列表同時也是 Lisp 的數據結構。這就意味著你可以寫出能生成 Lisp 代碼的 Lisp 函數。一個好的 Lisp 程序員必須懂得如何利用上述這種可能性。通常的途徑是定義一種稱為宏的操作符。駕馭宏是從編寫正確的 Lisp 程序走向編寫漂亮的程序過程中最重要的一步。入門級 Lisp 書籍給宏留下的篇幅僅限于一個宏的簡短的概述: 解釋一下宏是什么,加上幾個例子蜻蜓點水地提一下,說能用它實現一些奇妙的東西。不過本書會給予這些奇妙的東西特別的重視。這里的目標之一就是把所有關于宏的知識作一次總結,在以往,人們只能從使用宏的經驗和教訓中來吸取這些知識。一般來說,Lisp 的入門讀物都不會強調 Lisp 和其他語言的區別,這情有可原。它們必須想辦法把知識傳授給那些被教育成只會用 Pascal 術語來構思程序的學生。如果非要細究這些區別的話,只會把問題復雜化: 例如 defun 雖然看起來像一個過程定義,但實際上,它是一個編寫程序的程序,這個程序生成了一段代碼,而這段代碼新建了一個函數對象,然后用函數定義時給出的第一個參數作為這個函數對象的索引。本書的目的之一就是解釋究竟是什么使 Lisp 不同于其他語言。剛落筆時,我心里明白,同等條件下自己會更傾向于用 Lisp 而不是 C、Pascal 或 Fortran 來寫程序。我也知道這不只是個人好惡的問題。但當意識到就要鄭重其事地告訴大家 Lisp 語言在某些方面更優秀時,我發現應該做好準備,說說到底為什么。曾有人問 Louis Armstrong 什么是爵士樂,他答道 “如果你問爵士樂是什么,那你永遠不會知道。” 但他確實以一種方式回答了這個問題:他向世人展示了什么是爵士樂。同樣也只有一種方式來解釋 Lisp 的威力,就是演示那些對于其他語言來說極其困難甚至不可能實現的技術。多數關于編程的書籍,包括 Lisp 編程書籍,采用的都是那些你可以用任何其它語言編寫的程序。《On Lisp》涉及的多是那些只能用 Lisp 寫的程序。可擴展性,自底向上程序設計,交互式開發,源代碼轉換,嵌入式語言 這些都是 Lisp 展示其高級特性的舞臺。當然從理論上講,任意圖靈等價的編程語言能做的事,其它任何語言都可以做到。但這種能力和編程語言的能力卻完全是兩碼事。理論上,任何你能用編程語言做到的事,也可以用圖靈機來做,但實際上在圖靈機上編程得不償失。所以,當我說這本書是關于如何做那些其他語言力所不及的事情的時候,我并非指數學意義上的 “不可能”,而是從編程語言的角度出發的。這就是說,如果你不得不用 C 來寫本書中的一些程序,你可能需要先用 C 寫一個 Lisp 編譯器。舉個例子,在 C 語言里嵌入 Prolog 你能想象這需要多少工作量嗎? 第 24 章將說明如何用 180 行 Lisp 做到這一點。盡管我希望能比單單演示 Lisp 的強大之處做得更多。我也想解釋為何 Lisp 與眾不同。這是一個更微妙的問題,這個問題是那么難回答,它無法使用諸如 “符號計算” 這樣的術語來搪塞。我將盡我所學,盡可能清楚明白地解釋這些問題。
?
- 圖解數字磁帶錄音機的PDF電子書免費下載 99次下載
- 現代無線電實驗的PDF電子書免費下載 250次下載
- 半導體收音機淺談的PDF電子書免費下載 162次下載
- 光學諧振腔的圖解分析與設計方法的PDF電子書免費下載 123次下載
- 高級電力電子的學習課件PDF電子書免費下載 23次下載
- MATLAB函數速查手冊PDF電子書免費下載 148次下載
- 電子管數據手冊合集PDF電子書免費下載 72次下載
- 高級語言程序設計從菜鳥到大師深入C語言程序設計PDF電子書免費下載 166次下載
- 寫給文科生看的編程入門Python管窺PDF電子書免費下載 6次下載
- SHARP電子元器件綜合目錄中文版PDF電子書免費下載 0次下載
- 電冰箱快速維修PDF電子書免費下載 43次下載
- 家電維修1128例PDF電子書免費下載 186次下載
- STM8 C語言精品編程100例PDF版電子書免費下載 0次下載
- 《Visual C++游戲編程基礎》電子書.pdf 0次下載
- 《史蒂夫-喬布斯傳》官方正式中文版電子書 0次下載
- 工業機器人的四種編程(示教編程、離線編程、自增強現實編程主編程)剖析! 227次閱讀
- 電子書閱讀器內置鋰電池供電自動切換電路 1600次閱讀
- DRM技術的工作原理 3344次閱讀
- 知識普及:機器人的編程技術知識詳解 6781次閱讀
- 關于Linux下多線程編程技術學習總結 2135次閱讀
- 線編程技術 STC單片機的下載線設計 3959次閱讀
- 可編程邏輯器件CPLD的變化:從PAL到PLD 4548次閱讀
- 最新電子書拆解評測系列報道(一):打開你的眼界 1.2w次閱讀
- 人工智能lisp和prolog比較 6178次閱讀
- lisp語言有什么特點_lisp語言總結詳細分析 1.1w次閱讀
- lisp函數按功能分類 5106次閱讀
- lisp能被用來干什么_為什么Lisp沒有流行起來 2.9w次閱讀
- keil uvision2中文版|keil uvision2漢化補丁下載 1w次閱讀
- keil uvision2下載|keil uvision2漢化免費版下載 1.1w次閱讀
- AUTOCAD2009免費下載中文版 CAD2009簡體中文下載及安裝方法 1.2w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍牙設備在嵌入式領域的廣泛應用
- 0.63 MB | 3次下載 | 免費
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多