我还在学习Lisp语言,我需要了解如何使用Lisp实现堆栈(需要push-pop-peek函数。)。另外,我在寻找帮助时找到了这段代码。但我不确定它是否正常工作。
(defstruct stack
elements)
(defun stack-push (element stack)
(push element (stack-elements stack)))
(defun stack-pop (stack)(deftype Stack [elements])
(defun stack-empty (stack)
(endp (stack-elements stack)))
(defun stack-top (stack)
(first (stack-elements stack)))
(defun stack-peek (stack)
(stack-top stack))
答案 0 :(得分:2)
Lisp列表实际上是功能堆栈。
(cons a l)将a推送到堆栈l。
(car l)返回第一个元素(窥视)。
(cdr l)返回除第一个元素(pop)之外的所有元素。