Professional Documents
Culture Documents
Solution4 Lisp
Solution4 Lisp
Solution4 Lisp
;;
;; Global stack abstraction
;;
(defun global-stack-pop ()
"Pop the global stack."
(pop *stack*))
(defun global-stack-empty-p ()
"Check if global stack is empty."
(null *stack*))
;;
;; Encapsulated Stack object
;;
(defun make-stack ()
"Create a new stack object."
(let ((stack nil))
(list #'(lambda (x)
(push x stack))
#'(lambda ()
(pop stack))
#'(lambda ()
(null stack)))))