function add(integer a, integer b) return a + b end function function sub(integer a, integer b) return a - b end function function mul(integer a, integer b) return a * b end function function reduce(integer rid, sequence s) object res = s[1] for i=2 to length(s) do res = call_func(rid,{res,s[i]}) end for return res end function ?reduce(routine_id("add"),tagset(5)) ?reduce(routine_id("sub"),tagset(5)) ?reduce(routine_id("mul"),tagset(5))