def fun_as_arg(x, *args):
    """``fun_as_arg(x, fun, *more_args)`` calls ``fun(x, *more_args)``.

    Use case::

        fmin(cma.fun_as_arg, args=(fun,), gradf=grad_numerical)

    calls fun_as_args(x, args) and grad_numerical(x, fun, args=args)

    """
    fun = args[0]
    more_args = args[1:] if len(args) > 1 else ()
    return fun(x, *more_args)