MODULE FactorialTest; CONST Size = 3; VAR limit := Factorial(Size); PROC f := Factorial(n) IS IF n <= 1 -> f := 1 | f := n * Factorial(n - 1) FI END; PROC P(a, b) IS VAR i = 0, n = limit, c = (1 / n, 0) REL (a, b) IN DO i <= n -> PS.MoveTo((i, 0) REL (a, c)); PS.LineTo((i, LN(Factorial(i))) REL (a, c)); PS.Stroke(); i := i + 1 OD END END;