我仍在学习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