-1

我还在学习 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))
4

1 回答 1

3

Lisp 列表本身就是功能堆栈。

(cons al) 将 a 推入堆栈 l。

(car l) 返回第一个元素(一瞥)。

(cdr l) 返回除第一个元素(pop)之外的所有元素。

于 2013-05-12T00:42:15.263 回答