如何在函数返回的列表上使用添加到列表

How to use add-to-list on a list returned by function

我有一个 return 列表的功能。它可能 return 一个空白列表或一个数字列表。我想将 add-to-list 应用于 return 值。可能吗?

     (defun return-list () body....)
     (setq test (add-to-list (return-list) 1) )

函数 add-to-list 作用于 变量 ,而不是 列表 。 例如:

(defvar test (return-list))
(add-to-list 'test 1)

如果您无条件地添加到列表,请使用宏push,它作用于以下位置:

(push 1 test)

但是,对于您的情况,您可以做得更简单:

(setq test (cons 1 (return-list)))

如果你只想添加一个元素,当它还不存在时,使用宏cl-pushnew,它也在地方上运行:

(pushnew 1 test)
;; `test' is now (1)
(pushnew 1 test)
;; `test' is still (1)