LISP---合并列表

LISP中关于合并列表的操作总结:
先来看几个例子:

CL-USER 51 : 1 > (setq l1 '(1 2 3))
(1 2 3)

CL-USER 52 : 1 > (setq l2 '(4 5 6))
(4 5 6)

CL-USER 54 : 1 > (append l1 l2)
(1 2 3 4 5 6)

CL-USER 53 : 1 > (cons l1 l2)
((1 2 3) 4 5 6)

CL-USER 58 : 1 > (append (list l1) (list l2))
((1 2 3) (4 5 6))

CL-USER 58 : 1 > (append (list l1) (list l2))
((1 2 3) (4 5 6))

CL-USER 59 : 1 > (cons l1 (list l2))
((1 2 3) (4 5 6))

CL-USER 59 : 1 > (cons l1 (list l2))
((1 2 3) (4 5 6))

从上面的例子中,我们可以得到如下的分析:

  1. append 可以接受n(n >= 2) 个参数,如果这些参数都是列表的话,则会将第一个列表之后的每个列表中的元素放在第一个列表的后面;
  2. cons可以接受 2 个参数,如果这些参数都是列表的话,则会将第一个列表以及第二个列表中的元素组成一个新的列表;
  3. 如果以两个列表为元素组成一个新列表,则可以使用 (append (list l1 ) (list l2) ) 或者 (cons l1 (list l2) ).

猜你喜欢

转载自blog.csdn.net/Miha_Singh/article/details/89197676