Section 15
Want more of a challenge? View in iconic form (experimental)



       # 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);