0[2] (mapcar #'+ `(22 11 55) `(111 222 333)) (133 233 388) 0[2] (mapcar #'cdr `((22 11 55) (111 222 333))) ((11 55) (222 333)) 0[2] (apply #'append `((22 11 55) (111 222 333))) (22 11 55 111 222 333) 0[2]
mapcar用于以第二个参数为运算符或函数,执行第二个参数,这个函数所需要的参数来自于mapcar的第二个参数到最后一个参数,将后面参数中列表中的每项取出,然后分别运算,形成新的列表,意味着对每个列表中的每项都会执行一次mapcar的第二个参数规定的函数。
apply则以第二个参数为函数或运算符,将后面参数中的列表中的每项取出后,仅做为参数供函数运算,不形成新的列表
0[5] (defun myadd(v1 v2) (mapcar '+ v1 v2)) STYLE-WARNING: redefining COMMON-LISP-USER::MYADD in DEFUN MYADD 0[5] (mapcar `+ `(11 22) `(33 44)) (44 66)
0[5] (apply #'myadd `((11 22) (33 44))) (44 66) 0[5]
assoc相当于一种HASH操作,以参数为关键字,从列表中取出第一项元素,
* (defvar