2

私はラケットを学んでおり、関数型プログラミングは初めてで、スタック用に次のコードを書きました:

(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に戻ります。何が間違っていますか。

4

3 に答える 3