我正在尝试扩展并学习lisp。基础之一是实现一个简单的堆栈。一切正常,但我的pop
功能。
;Returns and removes the first element of the stack
(defun my-pop ()
(let (temp (car *stack*))
(setq *stack* (cdr *stack*))
temp))
这正确地删除了堆栈的“顶部”,但不返回它。早些时候,我有这个:
;Returns and removes the first element of the stack
(defun my-pop ()
(print (car *stack*)
(setq *stack* (cdr *stack*)))
但我宁愿返回顶部。
我究竟做错了什么?(我认为这与范围有关......)