'Compile the function call.'

def translate(self):

    varnames = set()
    if six.PY2:
        ident = self.ident.encode('utf-8')
    else:
        ident = self.ident
    funcnames = set([ident])
    arg_exprs = []
    for arg in self.args:
        (subexprs, subvars, subfuncs) = arg.translate()
        varnames.update(subvars)
        funcnames.update(subfuncs)
        arg_exprs.append(ex_call(ast.Attribute(ex_literal(u''), 'join', ast.Load()), [ex_call('map', [ex_rvalue(six.text_type.__name__), ast.List(subexprs, ast.Load())])]))
    subexpr_call = ex_call((FUNCTION_PREFIX + ident), arg_exprs)
    return ([subexpr_call], varnames, funcnames)
