procedure binocoef(n, k) #: binomial coefficient k := integer(k) | fail n := integer(n) | fail if (k = 0) | (n = k) then return 1 if 0 <= k <= n then return factorial(n) / (factorial(k) * factorial(n - k)) else fail end procedure factorial(n) #: return n! (n factorial) local i n := integer(n) | runerr(101, n) if n < 0 then fail i := 1 every i *:= 1 to n return i end