VAR i : INTEGER; FUNCTION foo(REF c : INTEGER) : INTEGER; BEGIN c := c * 2; COUT << "c = " << c << NL; RETURN 1; END foo; BEGIN i := 3; foo(i); COUT << "i = " << i << NL; RETURN 3; END. ============================ OUTPUTS: C = 6 i = 6 ============================ VAR i : INTEGER; FUNCTION foo2(REF z : INTEGER) : INTEGER; BEGIN z := z * 2; COUT << "z = " << z << NL; RETURN 1; END foo2; FUNCTION foo(REF c : INTEGER) : INTEGER; BEGIN RETURN foo2(c); END foo; BEGIN i := 5; COUT << "i = " << foo(i) << NL; RETURN 3; END. ============================ OUTPUTS: i = z = 10 1 ============================