Информация об изменениях

Сообщение Re[34]: Есть ли подобие LINQ на других языках/платформах? от 22.04.2021 10:50

Изменено 22.04.2021 11:09 Pauel

Re[34]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Serginio1, Вы писали:

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

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

Ты пока не показал, как xml, db и подобные вещи читать твоим IEnumerable.

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

I>>Ровно то же можно написать и без yield, с таким же количеством кода.
I>>вместо yield a будет observer.next(a)
S> Дохрена чего можно только это все трудоемко.

В JS, раз уж ты вспомнил, есть yield. Однако же, в RX процессинг ленивый, а обходятся без yield
https://github.com/ReactiveX/rxjs/search?q=yield
Ажно 11 раз, и те в документации и тестах
Теперь тебе понятно, что yield для RX это вещь сильно опциональная?

S>То, что на C# делается в 2 строчки кода, в других надо писать кучу кода. Поэто в большинстве просто используют List


Покажи, где здесь куча кода:
https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/filter.ts

Ровно то же у тебя и в C#, в т.ч. OperatorSubscriber, т.к. ктото должен конвертить последовательность значений в последовательность эвентов.

S> При чем тут IQueryable, слишком дорого его использовать для коллекций и смысла то особого нет, только лишние накладные расходы.


Дорого, я в курсе. Иногда это обосновано, если перформанс не актуален, а нужно иметь один и тот же код против разных источников данных.

S>То ты ратуешь за скорость то сам добавляешь дополнительную сложность и тормоза


Ну и логика Я озвучиваю простой факт, а ты додумываешь, будто я весь код так пишу. Ты адекватен?

S>>> Кто тебе запрещает писать расширения используя yield?


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

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

То есть, слив Или ты считаешь свой код примерами работы с mssql ?

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

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

Каким образом по IEnumerable построить SQL ?

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

S>Но деревья выражений не использутся для коллекций!!!

Используются, просто ты про это ничего не знаешь. Если код написан для BD, нет никакого смысла городить огород, если в некоторых случая нужно таскать данные из коллекций.
Используем один и тот же код против BD и коллекций, всех делов.
Re[34]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Serginio1, Вы писали:

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

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

Ты пока не показал, как xml, db и подобные вещи читать твоим IEnumerable, что бы это было максимально эффективно.

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

I>>Ровно то же можно написать и без yield, с таким же количеством кода.
I>>вместо yield a будет observer.next(a)
S> Дохрена чего можно только это все трудоемко.

В JS, раз уж ты вспомнил, есть yield. Однако же, в RX процессинг ленивый, а обходятся без yield
https://github.com/ReactiveX/rxjs/search?q=yield
Ажно 11 раз, и те в документации и тестах
Теперь тебе понятно, что yield для RX это вещь сильно опциональная?

S>То, что на C# делается в 2 строчки кода, в других надо писать кучу кода. Поэто в большинстве просто используют List


Покажи, где здесь куча кода:
https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/filter.ts

Ровно то же у тебя и в C#, в т.ч. OperatorSubscriber, т.к. ктото должен конвертить последовательность значений в последовательность эвентов.

S> При чем тут IQueryable, слишком дорого его использовать для коллекций и смысла то особого нет, только лишние накладные расходы.


Дорого, я в курсе. Иногда это обосновано, если перформанс не актуален, а нужно иметь один и тот же код против разных источников данных.

S>То ты ратуешь за скорость то сам добавляешь дополнительную сложность и тормоза


Ну и логика Я озвучиваю простой факт, а ты додумываешь, будто я весь код так пишу. Ты адекватен?

S>>> Кто тебе запрещает писать расширения используя yield?


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

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

То есть, слив Или ты считаешь свой код примерами работы с mssql ?

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

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

Каким образом по IEnumerable построить SQL ?

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

S>Но деревья выражений не использутся для коллекций!!!

Используются, просто ты про это ничего не знаешь. Если код написан для BD, нет никакого смысла городить огород, если в некоторых случая нужно таскать данные из коллекций.
Используем один и тот же код против BD и коллекций, всех делов.