resource factorial() procedure fact(k: int) returns f: int if k < 0 -> f := -1 [] k = 0 or k = 1 -> f := 1 [] k > 1 -> f := k * fact(k-1) fi end fact var n: int writes("How many factorials? "); read(n) write() # generate a linefeed, resulting in a blank line fa i := 1 to n -> write(i, "factorial is", fact(i)) af end factorial /* ............... Example compile and run(s) % sr -o factorial factorial.sr % ./factorial How many factorials? 5 1 factorial is 1 2 factorial is 2 3 factorial is 6 4 factorial is 24 5 factorial is 120 */