gpt4 book ai didi

stack - 如何清空列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:41 25 4
gpt4 key购买 nike

我试图找出在 Common Lisp 中清空列表(视为堆栈)的方法。

我想到了这个:

(defun emptystack ()
(dolist (var *stack*) (pop *stack*)))

但它会在编译时生成警告(VAR 已定义但从未使用过)。

然后我认为这样做会更简单:

(setq *stack* nil)

但是,我仍然想知道是否有任何方法可以像第一个函数那样手动完成,但没有任何未使用的变量。

最佳答案

可以声明忽略未使用变量:

(defun emptystack ()
(dolist (var *stack*)
(declare (ignore var))
(pop *stack*)))

使用 DO 宏:

(defun emptystack ()
(do () ; no bindings
((null *stack*)) ; end test, no further results
(pop *stack*))) ; body

LOOP 中,也可以通过将其命名为 nil 来忽略该变量:

(defun emptystack ()
(loop for nil in *stack* do (pop *stack*)))

关于stack - 如何清空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34699485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com