#lang plait (define MEMORY (make-vector 100 -1)) (define next-addr 0) (define (reset) (set! next-addr 0)) (define (write-and-bump v) (let ([n next-addr]) (begin (vector-set! MEMORY n v) (set! next-addr (add1 next-addr)) n))) (define (store-num n) (write-and-bump n)) (define (read-num a) (vector-ref MEMORY a)) (test (read-num (store-num 42)) 42)