http://www.docin.com/p-701905014.html
http://baike.so.com/doc/6747914.html
Command Lisp下载http://www.onlinedown.net/softdown/90034_2.htm
原子是不加()的东西!
七个原始(从公理的意义上说)操作符: quote,atom,eq,car,cdr,cons,和 cond.
quote是引用,返回自己:(quote x) =x
atom,是判断原子,是或者空表返回t,or ():(atom a)=a,(atom 'a)=();
eq是判断相等,如果是同一个原子或都是空表返回t,or ():(eq 'a 'a)=t,(eq 'a 'b)=();
car是期望后边是个表并返回第一个元素:(car '(a b c))=a;
cdr期望后面是一个表并返回第一个之后的元素:(cdr '(a b c))=(b c);
cons期望后面第二个是个表并返回一个新表加上第一个:(cons x '(b c))=(a b c)
(cond()())的求值规则为p表达式依次求值直到有一个返回t. 如果能找到这样的p表达式,相应的e表达式的值作为整个cond表达式的返回值:
> (cond ((eq 'a 'b) 'first)
((atom 'a) 'second))
second
一个被引用的原子仅仅视为表,而没有被引用的原子视为表达式,如:
(atom atom 'a)=t,而(atom '(atom 'a))=().