Re[33]: Есть ли подобие LINQ на других языках/платформах?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.04.21 09:07
Оценка: -1
Здравствуйте, Ikemefula, Вы писали:

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


I>>>Можешь вписать вместо итд свой пример с монадами

S>>Xml там IQueryable на самом то деле. Смотрим исходники https://referencesource.microsoft.com/#System.Xml.Linq/System/Xml/Linq/XLinq.cs,3354dac0913e417b

I>Сам подумай, что же значит.


S>>и считаем количество yield, что только подтверждает мои выводы


I>Количество yield ничего не значит. IQueryable можно прикрутить поверх чего угодно. А раз так, то это и есть общий случай.

А ну да молодец. То есть все твои примеры используют yield но ты переходишь на IQueryable. Но
IQueryable<out T> : IEnumerable<T>, IQueryable

S>>Что такое RX и WMI даже я не знаю но наверняка итераторы с yield


I>Не знаешь, но мнение имеешь. RX еще назывался linq2events.


S>>Вернее RX я еще помню по использованию в TS. Но и там yield напрополую используются

S>>https://github.com/dotnet/reactive/tree/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/Ix.NET/Source/System.Interactive.Async/System/Linq/Operators

I>Браво, ты узнал, что Обсервер и Итератор дуальны, а раз так, то можно один сводить к другому.

I>Ровно то же можно написать и без yield, с таким же количеством кода.
I>вместо yield a будет observer.next(a)
Дохрена чего можно только это все трудоемко. На том же JS нет нормального Linq
Пишем LINQ на JavaScript с нуля
То, что на C# делается в 2 строчки кода, в других надо писать кучу кода. Поэто в большинстве просто используют List
I>>>IQueryable можно натянуть на что угодно, хоть на коллекции, хоть на базу данных. Потому это гораздо больше похоже на общий случай. А вот IEnumerable это просто последовательность, и даже нужды коллекций покрывает не полностью.
При чем тут IQueryable, слишком дорого его использовать для коллекций и смысла то особого нет, только лишние накладные расходы.
То ты ратуешь за скорость то сам добавляешь дополнительную сложность и тормоза
S>> Кто тебе запрещает писать расширения используя yield?

I>Ок. Покажи пров для mssql на yield. Валяй.

Я тебе уже кучу привел примеров использования yield

S>>IQueryable это вообще деревья выражений. B и обрабатывать их то еще удовольствие.

S>>А yield с парой строчек написал любое расширение!

I>Покажи пров для mssql на yield. Хотя бы идею выдай.

Да легко. Получаешь результаты порциями. Держишь на сервере энумератор. Итд

S>> Да но Linq включает IEnumerable и он основной в использовании. Нахрен он тогда нужен.


I>Ты путаешь "основной" и "общий случай", а так же "yield" и "IEnumerable".


S>>Всякое EF и Linq2DB появились значительно позже хотя IQueryable был. Опять же Expression trees никакого отношения не имеют к IEnumerable, однако ты же согласен, что без него не было бы Linq


I>Без IQueryable не было бы, да. Именно это позволяет прикрутить Linq к чем угодно. А вот yield для BD — хоть раком встань, ничего не выйдет.

Но деревья выражений не использутся для коллекций!!!
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.