Section 13Want 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);