# MATH introduce mutable objects, and side-effects
[hear] (intro make-cell);
[hear] (intro set!);
[hear] (intro get!);
[hear] (define demo-mut1 / make-cell 0);
[hear] (set! (demo-mut1) 15);
[hear] (= (get! / demo-mut1) 15);
[hear] (set! (demo-mut1) 5);
[hear] (set! (demo-mut1) 7);
[hear] (= (get! / demo-mut1) 7);
[hear] (define demo-mut2 / make-cell 11);
[hear] (= (get! / demo-mut2) 11);
[hear] (set! (demo-mut2) 22);
[hear] (= (get! / demo-mut2) 22);
[hear] (= (get! / demo-mut1) 7);
[hear] (= (+ (get! / demo-mut1) (get! / demo-mut2))
29);
[hear] (if (= (get! / demo-mut1) 7)
(set! (demo-mut1) 88)
(set! (demo-mut1) 99));
[hear] (= (get! / demo-mut1) 88);
[hear] (if (= (get! / demo-mut1) 7)
(set! (demo-mut1) 88)
(set! (demo-mut1) 99));
[hear] (= (get! / demo-mut1) 99);