私はラケットを学んでおり、関数型プログラミングは初めてで、スタック用に次のコードを書きました:
(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に戻ります。何が間違っていますか。