# MATH show an example of recursive evaluation
       # skipping over a lot of definitions and desugarings
[hear] (define easy-factorial /
         ? f /
         ? x /
         if (> (x) 0) (* (x) / f (f) (- (x) 1)) 1);

[hear] (define factorial /
         ? x /
         if (> (x) 0)
          (* (x) /
           factorial /
           - (x) 1)
          1);

[hear] (= (easy-factorial (easy-factorial) 0) 1);

[hear] (= (easy-factorial (easy-factorial) 1) 1);

[hear] (= (easy-factorial (easy-factorial) 2) 2);

[hear] (= (easy-factorial (easy-factorial) 3) 6);

[hear] (= (easy-factorial (easy-factorial) 4) 24);

[hear] (= (easy-factorial (easy-factorial) 5) 120);

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

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

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

[hear] (= (factorial 3) 6);

[hear] (= (factorial 4) 24);

[hear] (= (factorial 5) 120);