SYNOPSIS
        mixed funcall(closure cl, mixed arg ...)

DESCRIPTION
        Evaluates the closure. The extra args will be passed as args
        to the closure. If cl is not a closure, it will simply be
        returned.

EXAMPLES
        mixed eval(object ob, string func, mixed *args)
        {
            return funcall(#'call_other, ob, func, args);
        }

        This will result in calling

          ob->func(args).

        In combination with the '...' operator, the functionality
        of apply() can be implemented:

        mixed eval(object ob, string func, mixed *args)
        {
            return funcall(#'call_other, ob, func, args...);
        }

        will result in calling

          ob->func(args[0],args[1],...,args[sizeof(args)-1]).

HISTORY
        Introduced in 3.2@70.
        Returning a non-closure as it is even when args are given was
        introduced with 3.2.1

SEE ALSO
        apply(E), quote(E)
