Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-art Common Lisp, the book teaches students and professionals how to build and debug robust practical programs, while demonstrating superior programming style and important AI conce...
Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-art Common Lisp, the book teaches students and professionals how to build and debug robust practical programs, while demonstrating superior programming style and important AI concepts. The author strongly emphasizes the practical performance issues involved in writing real working programs of significant size. Chapters on troubleshooting and efficiency are included, along with a discussion of the fundamentals of object-oriented programming and a description of the main CLOS functions. This volume is an excellent text for a course on AI programming, a useful supplement for general AI courses and an indispensable reference for the professional programmer.</p>
Contents
I: Introduction to Common Lisp
1. Introduction to Lisp
2. A Simple Lisp Program
3. Overview of Lisp
II: Early AI Programs
4. GPS: The General Problem Solver
5. ELIZA: Dialog with a Machine
6. Building Software Tools
7. STUDENT: Solving Algebra Word Problems
8. Symbolic Mathematics: A Simplification Program
III: Tools and Techniques
9. Efficiency Issues
10. Low Level Efficiency Issues
11. Logic Programming
12. Compiling Logic Programs
13. Object-Oriented Programming
14. Knowledge Representation and Reasoning
IV: Advanced AI Programs
15. Symbolic Mathematics with Canonical Form
16. Expert Systems
17. Line-Diagram Labeling by Constraint Satisfaction
The philosophy of Lisp is to provide a small number of special forms to do the things that could not otherwise be done, and then to expect the user to write everthing else as functions (查看原文)
Use the most natural notation available to solve a problem. 如果你直接把问题用直接的lisp代码来实现,那么你会发现lisp和其他语言没有什么太多优势。 而lisp的强项是先建立问题的语言,然后再给它写一个解释器。 Lisp书里面很多都是讲“术”,而鲜有讲“道”,你光知道语法,函数库,宏什么的“术”,而不知其“道”,是很难把Lisp的威力发挥出来的。(1回应)
2011-05-14 22:47:353人喜欢
Use the most natural notation available to solve a problem.
如果你直接把问题用直接的lisp代码来实现,那么你会发现lisp和其他语言没有什么太多优势。
而lisp的强项是先建立问题的语言,然后再给它写一个解释器。
Lisp书里面很多都是讲“术”,而鲜有讲“道”,你光知道语法,函数库,宏什么的“术”,而不知其“道”,是很难把Lisp的威力发挥出来的。
Introduction to lisp 1.1 Symbolic computation (1)Lisp不会给对象赋予额外的意义,也就是说给一个对象命名为abc还是奥巴马是没有区别的。 (2)Lisp有700多个内置的函数。 (3)Lisp对大小写不敏感。 (4)Symbol的命名可以由英文字母、数字和各种其他符号。 1.2 变量 > (setf p '(John Q Public) => (JOHN Q PUBLIC) > (setf x 10) =>10 > (+ x x) =>20 一个名字既可以表示Symbol,又可以表示functi...
2012-05-19 22:24:101人喜欢
Introduction to lisp
1.1 Symbolic computation
(1)Lisp不会给对象赋予额外的意义,也就是说给一个对象命名为abc还是奥巴马是没有区别的。
(2)Lisp有700多个内置的函数。
(3)Lisp对大小写不敏感。
(4)Symbol的命名可以由英文字母、数字和各种其他符号。
1.2 变量
> (setf p '(John Q Public) => (JOHN Q PUBLIC)
> (setf x 10) =>10
> (+ x x) =>20
一个名字既可以表示Symbol,又可以表示function,但最好不要混用。
1.3 Special Forms
(1)一般的函数,会作用于其后的每一个参量,而Special Form只是a basic of lisp。
(2)Lisp的哲学是提供少量的Special Form去做others不可以做的事,然后希望使用者用其他函数去做所有的事。
(3)一些Special Form Operater:
defun defparameter setf let case if function(#') quote(')
1.4 Lists
(1)怎样得到列表中的元素? car cdr组合使用,或者:first、rest、second、third……
还有last(取出的事最后一个元素组成的列表,而非最后一个元素)
(2)怎样建立一个列表? cons:construct 建造新的列表,老的列表不变。
1.5 定义新函数
Documention string are not used in any computation,but they are crucial tools for debugging and understanding large systems.
>(defun function-mane (parameter…)
"documentation string" —>可选
function-body…)
函数体的最后一个表达式返回一个值。
1.6 Using Function
(1)函数mapcar
(mapcar #'function-name '( ) '( ) …)
返回一个列表,这个#’后的函数分别作用于每个元素(单列表),或相同位置的元素(多列表)。
(2)car:contents of the address regester
dar:contents of the decrement regester
(3)(defparameter *title* '( ) )
习惯用法:星号*是非常常用的一种标注来说明这是一个特殊变量。
(4)nil表示假,其他的都表示真。
(5)if (测试
then
else)
(6)递归
1.7 Higher-Order Functions
(1)Lisp里的函数可以像其他种类的对象一样被操作。Higher-Order function:把别的函数作为自己的参量来操作 (例如mapcar)
(2)函数apply
(apply #'function '(这个函数的参量))
(3)函数funcall
(funcall #'function 这个函数的参量)
(4)lambda 起源: Alozon Church(阿隆佐·邱奇)
(lambda (parameters …) body…)
(5)一个列表被求值,是以下两种中的一种:
a. 列表中的第一个元素是special form operator,按special form的语义规则。
b.否则,这个函数代表一个函数调用。第一个元素为函数。
(lambda (x) (+ x x) 错:lambda不是函数
((lambda (x) (+ x 2)) 4) =>6
(6)lambda表达式非常有用的原因:
a.
b.
一個錯字 The philosophy of Lisp is to provide a small number of special forms to do the things that could not otherwise be done, and then to expect the user to write everthing else as functions The philosophy of Lisp is to provide a small number of special forms to do the things that could not otherwise be done, and then to expect the user to write *everything* else as functions.
2013-03-30 18:34:30
一個錯字
The philosophy of Lisp is to provide a small number of special forms to do the things that could not otherwise be done, and then to expect the user to write everthing else as functions引自 1.3 Special Forms
The philosophy of Lisp is to provide a small number of special forms to do the things that could not otherwise be done, and then to expect the user to write *everything* else as functions.
表達式皆為原子或列表。 列表是 special form expression 或 function application 都會被求值。 special form expression 的定義是第一個元素為 special form 的列表。 function application 先求值參數(對列表取 rest),再通過第一個參數找到函數,並將該函數應用至參數的求值結果。 原子皆為符號或非符號。 原子符號的求值,返回最近一次由該符號命名的變量的賦值。符號由字母組成、數字,很少用標點符號。 非符號原子的對...
2013-03-30 20:46:16
表達式皆為原子或列表。
列表是 special form expression 或 function application 都會被求值。
special form expression 的定義是第一個元素為 special form 的列表。
function application 先求值參數(對列表取 rest),再通過第一個參數找到函數,並將該函數應用至參數的求值結果。
原子皆為符號或非符號。
原子符號的求值,返回最近一次由該符號命名的變量的賦值。符號由字母組成、數字,很少用標點符號。
非符號原子的對自身求值。目前為止數字與字串是唯一的非符號原子。
1 有用 Liutos 2013-01-26 10:24:01
Peter Norvig大神用CommonLisp作为实现语言来讲解很多经典AI的例子,例如GPS、符号运算、rule-based系统等等
0 有用 Yuan Mai 2011-05-18 08:36:53
差点给书名骗了,粗粗看了一下,没来得及细读
0 有用 Lucia 2013-01-28 14:36:03
lovely... but no use
0 有用 Marine 2022-03-27 13:42:47
Just like GPS..
0 有用 罗刹剑客 2015-06-13 23:16:19
当年的入门教材之一……这两年统计的东西做的太多了,真想回头重温一下非统计的思路……
0 有用 Marine 2022-03-27 13:42:47
Just like GPS..
0 有用 卡菲修 2020-05-16 05:11:46
For exploring new ideas, people might need to visit old ai book
0 有用 ensoleilly 2018-04-08 20:28:23
九阳真经
0 有用 罗刹剑客 2015-06-13 23:16:19
当年的入门教材之一……这两年统计的东西做的太多了,真想回头重温一下非统计的思路……
0 有用 Lucia 2013-01-28 14:36:03
lovely... but no use