我仍在學習Lisp語言,我需要了解如何使用Lisp實現堆棧(需要push-pop-peek函數。)。另外,當我尋求幫助時,我發現了這個代碼。但我不確定它是否正常工作。如何以LISP語言實現堆棧
(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))
此代碼看起來很簡單,雖然沒有實現「stack-pop」。 (我假設'(deftype Stack [elements])'應該是一個單獨的表單,儘管我不確定它應該做什麼。)但是代碼或多或少都可以。你爲什麼不確定它是否正常工作?你試過了嗎?測試過了嗎?你會得到意想不到的結果? – 2013-05-12 01:10:46
我真正的問題是,當我在Sbcl中運行此代碼時,我只能看到STACK和STACK-PUSH.I無法看到POP和PEEK。如何解決此問題? – 2013-05-12 07:37:58