foreach со счетчиком
От: MTD https://github.com/mtrempoltsev
Дата: 27.05.14 18:19
Оценка: 18 (1)
В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):

int[] data = { 5, 6 };
foreach (int i in data with n)
    print n;


Вывод:

0
1

Re: foreach со счетчиком
От: Sharov Россия  
Дата: 27.05.14 18:30
Оценка: 12 (1)
Здравствуйте, MTD, Вы писали:

В питоне вроде бы -- тыц.
Кодом людям нужно помогать!
Re: foreach со счетчиком
От: AlexRK  
Дата: 27.05.14 18:46
Оценка: 12 (1)
Здравствуйте, MTD, Вы писали:

MTD>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):


В немерле.
Re: foreach со счетчиком
От: abibok  
Дата: 27.05.14 18:56
Оценка: 34 (3)
Здравствуйте, MTD, Вы писали:

MTD>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):


C#
int[] data = { 5, 6 };
data.Select((x, index) => { Console.WriteLine(index); return true; }).ToList();
Re: foreach со счетчиком
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 27.05.14 19:23
Оценка:
Руби:
data = [ 5, 6 ]
data.each_with_index do |i, n|
  p n
end
Ce n'est que pour vous dire ce que je vous dis.
Re[2]: foreach со счетчиком
От: avpavlov  
Дата: 27.05.14 19:39
Оценка:
DR>data.each_with_index do |i, n|

Ну в таком варианте в любом языке можно ТС имел ввиду поддержку на уровне синтаксиса
Re: foreach со счетчиком
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 27.05.14 20:13
Оценка: 12 (1)
Здравствуйте, MTD, Вы писали:

MTD>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):


MTD>
MTD>int[] data = { 5, 6 };
MTD>foreach (int i in data with n)
MTD>    print n;
MTD>


D:
int[] data = [5,6];
foreach(i, x; data)
  writeln(i);
Re[2]: foreach со счетчиком
От: MTD https://github.com/mtrempoltsev
Дата: 28.05.14 08:54
Оценка:
Здравствуйте, abibok, Вы писали:

A>
A>int[] data = { 5, 6 };
A>data.Select((x, index) => { Console.WriteLine(index); return true; }).ToList();
A>


Занятно, но это все же другое.
Re: foreach со счетчиком
От: NeoCode  
Дата: 28.05.14 10:16
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):


MTD>
MTD>int[] data = { 5, 6 };
MTD>foreach (int i in data with n)
MTD>    print n;
MTD>


Имеет смысл не со счетчиком, а с итератором. То есть первый аргумент foreach — объект или ссылка, принимающая значения из коллекции; второй — коллекция. А третий — опциональный — итератор, который используется циклом для обхода коллекции. Там может быть и индекс, если итератор для какого-то типа определен как индекс.
Re: foreach со счетчиком
От: Voivoid Россия  
Дата: 28.05.14 20:44
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):

Не нужно. По-хорошему должна быть возможность zip'нуть данную последовательность с последовательностью чисел от 0 до бесконечности. И обходить уже результат этого zip'а
Re[2]: foreach со счетчиком
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 29.05.14 06:35
Оценка: +1
Здравствуйте, Voivoid, Вы писали:

V>Не нужно. По-хорошему должна быть возможность zip'нуть данную последовательность с последовательностью чисел от 0 до бесконечности. И обходить уже результат этого zip'а


И чем это лучше? Лишние движения как для программиста, так и для компилятора, которому это надо хорошо уметь оптимизировать.
Т.е. такая возможность, конечно, нужна, но в дополнение, а не вместо.
Re: foreach со счетчиком
От: batu Украина  
Дата: 29.05.14 07:40
Оценка: +1 :)
Здравствуйте, MTD, Вы писали:

MTD>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):


MTD>
MTD>int[] data = { 5, 6 };
MTD>foreach (int i in data with n)
MTD>    print n;
MTD>


MTD>Вывод:


MTD>

MTD>0
MTD>1

По большому счету смысла нет. Могут понадобиться любые свойства объекта из множества. Индекс это только одно из них. Чем оно лучше чем другие. Любое исключение множит не нужные понятия.
Re: foreach со счетчиком
От: Буравчик Россия  
Дата: 29.05.14 19:14
Оценка: 9 (1)
Здравствуйте, MTD, Вы писали:

MTD>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):


В Smalltalk у коллекций был метод doWithIndex
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 17>>
Best regards, Буравчик
Re[2]: foreach со счетчиком
От: Буравчик Россия  
Дата: 29.05.14 19:18
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Здравствуйте, MTD, Вы писали:


MTD>>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):


Б>В Smalltalk у коллекций был метод doWithIndex


Да и в LISP наверное было что-то похожее.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 17>>
Best regards, Буравчик
Re[3]: foreach со счетчиком
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.05.14 22:01
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Занятно, но это все же другое.


Я с Мэдсом говорил на эту тему — он не видит ничего плохого в этом, но особой заинтересованности тоже не проявил и в текущем роадмапе этого нет.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: foreach со счетчиком
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.05.14 22:02
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>В Smalltalk у коллекций был метод doWithIndex


Методы такиеотнет тут уже упоминали. Но индекс настолько частая фича, что можно было бы и в foreach поддержать синтаксически.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
AVK Blog
Re[3]: foreach со счетчиком
От: Буравчик Россия  
Дата: 31.05.14 06:13
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Буравчик, Вы писали:


Б>>В Smalltalk у коллекций был метод doWithIndex


AVK>Методы такиеотнет тут уже упоминали. Но индекс настолько частая фича, что можно было бы и в foreach поддержать синтаксически.


Да, методы упоминали, но есть одна очень существенная разница. В NET (и других языках с foreach) — использование foreach и вызов метода отличаются синтаксически. В Smalltalk же в обоих случаях используется вызов метода. Поэтому вызов do: (аналог foreach) и doWithIndex: синтаксически не отличаются.

Поэтому если doWithIndex есть в стандартной библиотеке, то это скорее часть языка, а не просто метод. То же относится и к другим языкам "без синтаксиса". Например, LISP.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 17>>
Best regards, Буравчик
Re[2]: foreach со счетчиком
От: MTD https://github.com/mtrempoltsev
Дата: 02.07.14 19:14
Оценка:
Здравствуйте, Voivoid, Вы писали:

MTD>>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):

V>Не нужно.

Пара простых примеров:

string[] users = { "Bob", "Alice" };
foreach (string name in users with n)
    print "#{0} {1}\n", n, name;

foreach (string name in users with n)
    print name
    print n == users.size - 1 ? "\n" : ", ";
Re[3]: foreach со счетчиком
От: Jack128  
Дата: 02.07.14 19:21
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, Voivoid, Вы писали:


MTD>>>В каком языке додумались до цикла по последовательности со счетчиком? Например так (выделенное опционально):

V>>Не нужно.

MTD>Пара простых примеров:


MTD>
MTD>string[] users = { "Bob", "Alice" };
MTD>foreach (string name in users with n)
MTD>    print "#{0} {1}\n", n, name;

MTD>foreach (string name in users with n)
MTD>    print name
MTD>    print n == users.size - 1 ? "\n" : ", ";
MTD>

дык вроде если есть та возможность, которую ты решил не цитировать, то все эти примеры вполне решаются
Re[4]: foreach со счетчиком
От: MTD https://github.com/mtrempoltsev
Дата: 02.07.14 19:42
Оценка:
Здравствуйте, Jack128, Вы писали:

J>дык вроде если есть та возможность, которую ты решил не цитировать, то все эти примеры вполне решаются


И без той нецитируемой возможности примеры решаются. Зачем мне еще одна последовательность?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.