一起添加两个列表

时间:2018-06-20 23:32:33

标签: lisp common-lisp

(defun tree-node(x)
(list(* 2 x) (+(* 2 x) 1))
(tree-node 4)
(8 9)

 (defun special-queue(y)
 (set x (list y (+ 1 y) (+ 2 y)))
 (append(list(rest z) (tree-node first z)))
 )

以上是我到目前为止的代码。我试图将两个列表一起添加到一个列表中。第一个函数接受一个数字并返回两个数字的列表。第二个功能旨在接收一个列表,将树节点功能应用于该列表中的第一个元素,然后将原始列表和树节点列表都附加在一起。例如:(3,4,5)<-(列表函数接收),(4,5,6,7)<-附加列表,其中6、7是树节点功能列表。一旦将树节点功能应用到第一个元素,便将其删除。

1 个答案:

答案 0 :(得分:0)

如果您有一个列表a和一个列表b,则可以通过对它们应用append来附加两个:

(append a b)

请注意,您写的是有效的:

(append (list a b))  ; wrong

要建立本地绑定,请使用let

(let ((initial-queue (list n (+ n 1) (+ n 2))))
  (append (rest initial-queue) (child-indices (first initial-queue))))