1.映射函数 [1]> (setf l '(1 2 3)) (1 2 3) [8]> (mapcar #'(lambda (x) (+ x 10)) l) (11 12 13) maplist 接受同样的参数,将列表的渐进的下一个 cdr 传入函数 [9]> (maplist #'(lambda (x) x) l) ((1 2 3) (2 3) (3)) 2.树 看完这一节,才对lisp的其中一个优点有所理解。就像lisp的名字“Lisp” 起初是 “LISt Processor” 的缩写。都是列表啊。 Cons 对象可以想成是二元树, car 代表右子树,而 cdr 代表左子树。图就不传了,原图有点错误,这个比较好理解。 我们有下面的列表。 [13]> (setf x 1) 1 [15]> (and (integerp x) (zerop (mod x 2))) NIL [16]> (setf x 2) 2 [17]> (and (integerp x) (zerop (mod x 2))) T [18]> (setf x 2.0) 2.0 [19]> (and (integerp x) (zerop (mod x 2))) NIL 用来判断x是整数,并且被2 整除,这不是函数形式,想把其中的x改成y的时候。我们将他看成整个列表进行操作。看到这里我才明白,汗。 [20]> (subst 'y 'x '(and (integerp x) (zerop (mod x 2)))) (AND (INTEGERP Y) (ZEROP (MOD Y 2))) 单引号的功能前边有介绍,但是没这样的例子,当时还是仅仅的理解为'(a b c)。 [24]> (cons 'a 'b) (A . B) 这是一个非正规列表,称之为 [caption id="attachment_808" align="alignnone" width="96" caption="点状列表"]点状列表[/caption] 。 common lisp列表操作的函数好多,大概试了,就不记录了,等以后查看文档。

上一篇:
下一篇:

相关文章:

Categories: 博客记录

0 Responses so far.

Leave a Reply