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



       # MATH show mechanisms for branching
[hear] (intro if);

[hear] (= (if (> 4 1) 29 22) 29);

[hear] (= (if (> 5 4) 24 28) 24);

[hear] (= (if (> 4 4) 20 20) 20);

[hear] (= (if (> 6 3) 28 28) 28);

[hear] (= (if (< 5 6) 22 23) 22);

[hear] (= (if (= 3 3) 25 20) 25);

[hear] (= (if (< 1 2) 27 21) 27);

[hear] (= (if (= 3 3) 25 25) 25);

[hear] (define max /
         ? x /
         ? y /
         if (> (x) (y)) (x) (y));

[hear] (define min /
         ? x /
         ? y /
         if (< (x) (y)) (x) (y));

[hear] (= 0 (max 0 0));

[hear] (= 0 (min 0 0));

[hear] (= 1 (max 0 1));

[hear] (= 0 (min 0 1));

[hear] (= 2 (max 0 2));

[hear] (= 0 (min 0 2));

[hear] (= 1 (max 1 0));

[hear] (= 0 (min 1 0));

[hear] (= 1 (max 1 1));

[hear] (= 1 (min 1 1));

[hear] (= 2 (max 1 2));

[hear] (= 1 (min 1 2));

[hear] (= 2 (max 2 0));

[hear] (= 0 (min 2 0));

[hear] (= 2 (max 2 1));

[hear] (= 1 (min 2 1));

[hear] (= 2 (max 2 2));

[hear] (= 2 (min 2 2));

[hear] (define factorial /
         ? n /
         if (<= (n) 1) 1 /
         * (n) /
         factorial /
         - (n) 1);

[hear] (= 1 / factorial 1);

[hear] (= 2 / factorial 2);

[hear] (= 6 / factorial 3);

[hear] (= 24 / factorial 4);

[hear] (= 120 / factorial 5);