Полезный финт для более компактного вывода векторов:
Код:
? p=[0,24,30,54,78,84,108]; printf("%d: %d\n", 98303873,p);
98303873: [0,24,30,54,78,84,108]
Здесь второй %d применяется к каждому элементу вектора и позволяет убрать пробел после запятой. Если надо.
Ещё финт, для одинакового вывода на консоль и в файл лога/результата:
Код:
p=[0,24,30,54,78,84,108]; w=strprintf("%d: %d", 98303873,p); print(w); write(f,w);
Здесь уже \n в строке не нужно, оно добавляется и print и write. Так можно сначала набрать длинную строку из множества объектов, а потом единым махом её вывести, это намного быстрее вызова кучи print1/write1. Плюс широкие возможности форматирования.
Ещё финт, убрать обрамляющие "[]" из вывода вектора, плюс заменить разделитель на например ";":
Код:
? ? p=[0,24,30,54,78,84,108]; w=strjoin(p,";"); print(98303873,": ",w);
98303873: 0;24;30;54;78;84;108
Корректно работает и с одним элементом в векторе, и с пустым вектором.
Тут конечно надо бы сначала преобразовать вектор чисел в вектор строк (как требует strjoin), но в частном случае просто чисел работает и так.
PS. Сегодня уже воскресенье.