'Evaluate the function call in the environment, returning a
Unicode string.'

def evaluate(self, env):

    if (self.ident in env.functions):
        arg_vals = [expr.evaluate(env) for expr in self.args]
        try:
            out = env.functions[self.ident](*arg_vals)
        except Exception as exc:
            return (u'<%s>' % six.text_type(exc))
        return six.text_type(out)
    else:
        return self.original
