Lisp 函数

时间:2023-03-09 22:36:02
Lisp 函数

(quote x)  【返回x】

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>(quote a)

a

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(atom x)  【当x是一个原子或者空表时,返回原子t,否则返回空表();一个未被引用的表达式作为自变量,atom将其作为代码,反之被引用的表仅作为表】

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>(atom 'a)

t

>(atom '())

t

>(atom '(a b c))

t

>(atom (atom 'a))

t

>(atom '(atom 'a))

()

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(eq x y)  【当x和y的值相同或者同为空表时返回t,否则返回空表()】

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>(eq 'a 'a)

t

>(eq 'a 'b)

()

>(eq '() '())

t

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(car x)  【x要求是一个表,返回x中的第一个元素】

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>(car '(a b))

a

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(cdr x)  【x要求是一个表,返回x中除了第一个元素外的所有元素组成的表】

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>(cdr '(a b c))

(b c)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(cons x y)  【y要求是一个表,此函数返回一个表,这个表的第一个元素是x,其后是y中所有的元素】

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>(cons 'a '(b c))

(a b c)

>(cons 'a (cons 'b (cons 'c ())))

(a b c)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(cond (p1 e1) (p2 e2) ... (pn en))  【p1到pn为条件,e1到en为结果,cond依次对p1到pn求值,直到找到第一个值为原子t的p,然后返回对应的e】

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>(cond ((eq 'a 'b) 'first)

  ((atom 'a) 'second))

second

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>