UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ lecture15/ last-call.rkt
#lang plait
(define last-call
  (let ([state (none)])
    (lambda (n)
      (let ([old state])
        (begin
          (set! state (some n))
          old)))))

(test (last-call 1) (none))
(test (last-call 2) (some 1))
(test (last-call 3) (some 2))
(test (last-call 3) (some 3))