-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) は、最初の要素 (ポップ) 以外のすべてを返します。

于 2013-05-12T00:42:15.263 に答える