public string Evaluate(IContext <string> context) { if (functions.HasFunction(name.ToLower())) { var function = functions.GetFunction(name.ToLower()); return(function.Func.Invoke(args?.Select(s => (object)s.Evaluate(context))?.ToArray(), context).ToString()); } // TODO should return missing function return(""); }