mixed evaluate(mixed f, ...);
If f is a function, f is called with the rest of the arguments. Otherwise, f is returned. evaluate(f, ...) is the same as (*f)(...).
Beek @ZorkMUD, Lima Bean, IdeaExchange, TMI-2, and elsewhere