资料介绍
本书适用于那些想更上一层楼的 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 与众不同。这是一个更微妙的问题,这个问题是那么难回答,它无法使用诸如 “符号计算” 这样的术语来搪塞。我将尽我所学,尽可能清楚明白地解释这些问题。
- Advanvanced C++中文版电子书下载 40次下载
- 现代无线电实验的PDF电子书免费下载 158次下载
- 半导体收音机浅谈的PDF电子书免费下载 127次下载
- 光学谐振腔的图解分析与设计方法的PDF电子书免费下载 98次下载
- 高级电力电子的学习课件PDF电子书免费下载 13次下载
- MATLAB函数速查手册PDF电子书免费下载 121次下载
- 高级语言程序设计从菜鸟到大师深入C语言程序设计PDF电子书免费下载 119次下载
- 写给文科生看的编程入门Python管窥PDF电子书免费下载 5次下载
- SHARP电子元器件综合目录中文版PDF电子书免费下载 7次下载
- 单片机高级语言C51Windows环境编程与应用PDF电子书免费下载 102次下载
- 信号与系统奥本海默第2版PDF中文版电子书免费下载 1517次下载
- 电冰箱快速维修PDF电子书免费下载 27次下载
- 家电维修1128例PDF电子书免费下载 108次下载
- STM8 C语言精品编程100例PDF版电子书免费下载 73次下载
- 《Visual C++游戏编程基础》电子书.pdf 216次下载
- 电子书阅读器内置锂电池供电自动切换电路 160次阅读
- DRM技术的工作原理 183次阅读
- PLC的五大编程技术方法 478次阅读
- Arm NEON编程技术上手指南 534次阅读
- 知识普及:机器人的编程技术知识详解 6327次阅读
- 关于Linux下多线程编程技术学习总结 1901次阅读
- 线编程技术 STC单片机的下载线设计 3212次阅读
- 可编程逻辑器件CPLD的变化:从PAL到PLD 3796次阅读
- 最新电子书拆解评测系列报道(一):打开你的眼界 1w次阅读
- 人工智能lisp和prolog比较 5509次阅读
- lisp函数按功能分类 4423次阅读
- lisp能被用来干什么_为什么Lisp没有流行起来 2.7w次阅读
- keil uvision2中文版|keil uvision2汉化补丁下载 9301次阅读
- 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次下载 | 免费
评论
查看更多