我正在学习球拍和函数式编程的新手,并为堆栈编写了以下代码:
(define stack '(0))
(define (push x stack)
(set! stack (cons x stack)))
(define (pop stack)
(let ((result (car stack)))
(set! stack (cdr stack))
result))
当我做
(push 2 stack)
没有错误。当我这样做时,(pop stack)
我会返回 0。我做错了什么。