public static StringValue Remove(FunctionArgument _args, EvalContext cal) { var args = _args.Arguments; OperationHelper.AssertCertainValueThrowIf(null, args); if (OperationHelper.AssertArgsNumber(3, args)) { var ov = cal.GetValue <StringValue>(args[0]); var begin = (int)cal.GetValue <RealNumber>(args[1]); var len = (int)cal.GetValue <RealNumber>(args[2]); return(new StringValue(ov.Value.Remove(begin, len))); } else if (OperationHelper.AssertArgsNumber(2, args)) { var ov = cal.GetValue <StringValue>(args[0]); var begin = (int)cal.GetValue <RealNumber>(args[1]); return(new StringValue(ov.Value.Remove(begin))); } ExceptionHelper.RaiseWrongArgsNumber(null, 3, args?.Length ?? 0); return(default);