Value print(FunctionArguments arguments, SymbolTable symbol_table) { string sep = arguments.get_string_argument(null, "sep", " ", symbol_table); // string end = arguments.get_string_argument(null, "end", "\n", symbol_table); string end = arguments.get_string_argument(null, "end", Environment.NewLine, symbol_table); var list_arg = arguments.get_list_arguments(0, symbol_table); var sb = new StringBuilder(); for (int i = 0; i < list_arg.Count; i++) { sb.Append(list_arg[i].ToString()); if (i < list_arg.Count - 1) { sb.Append(sep); } } sb.Append(end); Console.Write(sb.ToString()); if (text_writer != null) { text_writer.Write(sb.ToString()); } return(NoneValue.NONE); }