Re[7]: Нововведение в foreach
От: Lloyd Россия  
Дата: 14.09.10 08:33
Оценка:
Здравствуйте, barn_czn, Вы писали:

_>>>Конечно, приведение к IEnumerable типа который имелементирует IEnumerable<> работать будет, куда оно денется. Попробуйте на чистом

_>>>IEnumerable, не генерик. Я точно знаю что LINQ не умеет работать с негенерик IEnumerable. А foreach работает.

L>>
L>>var lst = new ArrayList { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

L>>foreach (object i in lst.Cast<object>().Skip(5).Take(5))
L>>    Console.WriteLine(i);
L>>


_>

_>Cast это сила.
_>Вы понимаете что речь идет не о мощи LINQ ?

А о чем? Cast, Skip, Take — все это часть того, что называют Linq.
Re[8]: Нововведение в foreach
От: barn_czn  
Дата: 14.09.10 08:39
Оценка: :)
Здравствуйте, LF, Вы писали:

_>>Ну тогда по вашей логике можно остановится. .NET 4 впринципе не нужен был уже. Да и 3.0 и 3.5 тоже, зачем вообще по вашему синтаксический сахар делают ?

LF>Сахар сахару рознь.

Понимаете, возможность обратится внутри foreach к номеру перечисляемого объекта — это не просто синтакс. сахар. Это почти подсказка нерадивым программерам о том что все множества имеют много общего с множествами натуральных чисел. В частности это обображение любой коллекции на множество натуральных чисел.

Никто пока не задал вопрос о том — какой тип данных будет иметь эта проертя Index ?
Вот это действительно ставит в тупик. Но говорят что в D просто объявляют нужного типа переменную. Но тогда действительно фича примет уже не тот фундаментальный смысл.
Re[9]: Нововведение в foreach
От: Lloyd Россия  
Дата: 14.09.10 08:41
Оценка:
Здравствуйте, barn_czn, Вы писали:

LF>>Сахар сахару рознь.


_>Понимаете, возможность обратится внутри foreach к номеру перечисляемого объекта — это не просто синтакс. сахар. Это почти подсказка нерадивым программерам о том что все множества имеют много общего с множествами натуральных чисел. В частности это обображение любой коллекции на множество натуральных чисел.


Вы о чем? Как эта "подсказка" должна им помочь?
Re[9]: Нововведение в foreach
От: Aen Sidhe Россия Просто блог
Дата: 14.09.10 08:42
Оценка:
Здравствуйте, barn_czn, Вы писали:

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


_>>>Ну тогда по вашей логике можно остановится. .NET 4 впринципе не нужен был уже. Да и 3.0 и 3.5 тоже, зачем вообще по вашему синтаксический сахар делают ?

LF>>Сахар сахару рознь.

_>Понимаете, возможность обратится внутри foreach к номеру перечисляемого объекта — это не просто синтакс. сахар. Это почти подсказка нерадивым программерам о том что все множества имеют много общего с множествами натуральных чисел. В частности это обображение любой коллекции на множество натуральных чисел.


Для отображения есть специальные методы. Отобрази, потом перебирай.

_>Никто пока не задал вопрос о том — какой тип данных будет иметь эта проертя Index ? Вот это действительно ставит в тупик. Но говорят что в D просто объявляют нужного типа переменную. Но тогда действительно фича примет уже не тот фундаментальный смысл.


А зачем обсуждать тип ненужной вещи?
С уважением, Анатолий Попов.
ICQ: 995-908
Re[9]: Нововведение в foreach
От: LF  
Дата: 14.09.10 08:47
Оценка:
_>Понимаете, возможность обратится внутри foreach к номеру перечисляемого объекта — это не просто синтакс. сахар. Это почти подсказка нерадивым программерам о том что все множества имеют много общего с множествами натуральных чисел. В частности это обображение любой коллекции на множество натуральных чисел.
Отображение на множество не имеет ничего общего с перебором. Мухи отдельно, котлеты отдельно.
Re[10]: Нововведение в foreach
От: barn_czn  
Дата: 14.09.10 09:02
Оценка:
Здравствуйте, LF, Вы писали:

_>>Понимаете, возможность обратится внутри foreach к номеру перечисляемого объекта — это не просто синтакс. сахар. Это почти подсказка нерадивым программерам о том что все множества имеют много общего с множествами натуральных чисел. В частности это обображение любой коллекции на множество натуральных чисел.

LF>Отображение на множество не имеет ничего общего с перебором. Мухи отдельно, котлеты отдельно.

Неправда. Порядок перебора как раз и определяется тем как вы отобразили ваше множество на множество натуральных чисел. Можно конечно считать и наоборот что отображение зависит от перебора. Но мы то обсуждаем случай когда необходимо перебрать и в процессе перебора использовать индекс. Я же сразу привел проблему а потом решение которое мне нравилось бы.
Решения с помощью LINQ я сразу отмел, потому что это отдельная технология, это не фича языка (без добавления сборок LINQа нет).
Re[11]: Нововведение в foreach
От: Aen Sidhe Россия Просто блог
Дата: 14.09.10 09:07
Оценка:
Здравствуйте, barn_czn, Вы писали:

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


_>>>Понимаете, возможность обратится внутри foreach к номеру перечисляемого объекта — это не просто синтакс. сахар. Это почти подсказка нерадивым программерам о том что все множества имеют много общего с множествами натуральных чисел. В частности это обображение любой коллекции на множество натуральных чисел.

LF>>Отображение на множество не имеет ничего общего с перебором. Мухи отдельно, котлеты отдельно.

_>Неправда. Порядок перебора как раз и определяется тем как вы отобразили ваше множество на множество натуральных чисел. Можно конечно считать и наоборот что отображение зависит от перебора. Но мы то обсуждаем случай когда необходимо перебрать и в процессе перебора использовать индекс. Я же сразу привел проблему а потом решение которое мне нравилось бы.

_>Решения с помощью LINQ я сразу отмел, потому что это отдельная технология, это не фича языка (без добавления сборок LINQа нет).

Без добавления куда? Они уже во фреймворке.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[11]: Нововведение в foreach
От: Lloyd Россия  
Дата: 14.09.10 09:08
Оценка:
Здравствуйте, barn_czn, Вы писали:

_>Решения с помощью LINQ я сразу отмел, потому что это отдельная технология, это не фича языка (без добавления сборок LINQа нет).


Тебе же уже показали, что ты ошибаешься. Получение индекса вполне реализуется в рамках 2.0
Re[11]: Нововведение в foreach
От: LF  
Дата: 14.09.10 09:10
Оценка: :)
_>Но мы то обсуждаем случай когда необходимо перебрать и в процессе перебора использовать индекс.
То что вам необходимо в переборе использовать индекс это ваша проблема, а не перебора.
Оператор перебора должен только перебирать.

_>Решения с помощью LINQ я сразу отмел, потому что это отдельная технология, это не фича языка (без добавления сборок LINQа нет).

Да ну?
Re: Нововведение в foreach
От: WolfHound  
Дата: 14.09.10 13:27
Оценка: 3 (1) +6 :))) :))) :))
Здравствуйте, barn_czn, Вы писали:

_>Собственно предлагаю нововведение: в теле foreach сделать доступной пропертю Index.

Казалось бы при чем тут nemerle?
Автор: VladD2
Дата: 23.07.10
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Нововведение в foreach
От: IT Россия linq2db.com
Дата: 14.09.10 19:37
Оценка: 6 (1) :))
Здравствуйте, WolfHound, Вы писали:

_>>Собственно предлагаю нововведение: в теле foreach сделать доступной пропертю Index.

WH>Казалось бы при чем тут nemerle?
Автор: VladD2
Дата: 23.07.10


А я вот проявил большую выдержку
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Нововведение в foreach
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.09.10 19:53
Оценка: 1 (1) +1 -1
Здравствуйте, Aen Sidhe, Вы писали:

AS>Как быть с коллекциями, к которым понятие "индекс" не применимо? Как быть с коллекциями, которые не гарантируют порядок членов? В конце концов, как быть с бесконечными последовательностями?


Индекс может быть нужен не для индексации, а например, для того чтобы вывести его на экран или в ХТМЛ.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Нововведение в foreach
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.09.10 19:55
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Лучше было бы сразу всю функциональность loop-а или (ещё лучше) iterate-тa

MZ>из common lisp-а реализовать. Там абсолютно полный охват всех возможных
MZ>случаев итераций.

Сложновато. Даже матерые лиспари не все его семантику полностью знают. А уж учить это все...

Лучше уж разбить на несколько конструкций, как в более современных языках сделано.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Нововведение в foreach
От: Aen Sidhe Россия Просто блог
Дата: 14.09.10 20:06
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Aen Sidhe, Вы писали:


AS>>Как быть с коллекциями, к которым понятие "индекс" не применимо? Как быть с коллекциями, которые не гарантируют порядок членов? В конце концов, как быть с бесконечными последовательностями?


VD>Индекс может быть нужен не для индексации, а например, для того чтобы вывести его на экран или в ХТМЛ.


Вот уж куда-куда, а в html индекс не нужен. А так — отобрази явно на то, что тебе надо и выводи.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[4]: Нововведение в foreach
От: IT Россия linq2db.com
Дата: 14.09.10 21:03
Оценка:
Здравствуйте, Aen Sidhe, Вы писали:

VD>>Индекс может быть нужен не для индексации, а например, для того чтобы вывести его на экран или в ХТМЛ.

AS>Вот уж куда-куда, а в html индекс не нужен.

А на экране нужен?
Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Нововведение в foreach
От: barn_czn  
Дата: 15.09.10 02:37
Оценка:
Здравствуйте, Lloyd, Вы писали:

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


_>>Решения с помощью LINQ я сразу отмел, потому что это отдельная технология, это не фича языка (без добавления сборок LINQа нет).


L>Тебе же уже показали, что ты ошибаешься. Получение индекса вполне реализуется в рамках 2.0


Ну видимо не показали.
Получение индекса впринципе конечно реализуется, я ведь сам и показал как в самом начале.
Re[12]: Нововведение в foreach
От: barn_czn  
Дата: 15.09.10 02:38
Оценка:
Здравствуйте, LF, Вы писали:

_>>Но мы то обсуждаем случай когда необходимо перебрать и в процессе перебора использовать индекс.

LF>То что вам необходимо в переборе использовать индекс это ваша проблема, а не перебора.
LF>Оператор перебора должен только перебирать.

Перебор ради перебора? Перебор ведь всегда с какой то целью делается. И часто нужен индекс

_>>Решения с помощью LINQ я сразу отмел, потому что это отдельная технология, это не фича языка (без добавления сборок LINQа нет).

LF>Да ну?

Ну да.
Re[5]: Нововведение в foreach
От: Aen Sidhe Россия Просто блог
Дата: 15.09.10 04:40
Оценка: :))
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Aen Sidhe, Вы писали:


VD>>>Индекс может быть нужен не для индексации, а например, для того чтобы вывести его на экран или в ХТМЛ.

AS>>Вот уж куда-куда, а в html индекс не нужен.

IT>А на экране нужен?


Если криво делать, то нужен.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[13]: Нововведение в foreach
От: LF  
Дата: 15.09.10 06:38
Оценка: +1 :)
_>Перебор ради перебора? Перебор ведь всегда с какой то целью делается. И часто нужен индекс
Если в процессе перебора нужен индекс, то надо использовать другие структуры данных и другие методы (for).
Если класс отдает IEnumerable значит индекс для работы не требуется, а если все таки требуется — ошибка проектирования.
А ошибки не надо сглаживать сомнительными костылями в языке.

_>>>Решения с помощью LINQ я сразу отмел, потому что это отдельная технология, это не фича языка (без добавления сборок LINQа нет).

LF>>Да ну?
_>Ну да.
Linq находиться в System.Core, это часть платформы, а не какая то отдельная технология.
Re[13]: Нововведение в foreach
От: Lloyd Россия  
Дата: 15.09.10 07:24
Оценка:
Здравствуйте, barn_czn, Вы писали:

L>>Тебе же уже показали, что ты ошибаешься. Получение индекса вполне реализуется в рамках 2.0


_>Ну видимо не показали.


Посмотри пример gandjustas-а. Теолько не смущайся наличием там Select, его можно вполне переписать и без него, с yield return.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.